1: 세션 소개
세션이란 무엇인가요? 간단히 말해, 서버가 클라이언트에게 주는 숫자입니다. 웹 서버가 실행 중일 때, 여러 사용자가 그 서버에서 운영되는 웹사이트를 탐색할 수 있습니다. 각 사용자가 처음 웹 서버에 접속할 때, 서버와 세션을 설정하고, 서버는 자동으로 사용자의 고유 신원을 식별하는 SessionID를 할당합니다. 이 SessionID는 웹 서버에서 무작위로 생성되는 24자 문자열이며, 아래 실험에서 그 작동 방식을 확인할 것입니다.
2: Asp.Net 내 세션의 중앙집중식 모드 및 구성
(1): InProc, 세션은 프로세스에 저장되며, 이는 ASP.Net 의 저장 방식이자 기본 값입니다 (2): StateServer, 세션은 별도의 상태 서비스, 즉 ASP.NET 상태 서비스에 저장됩니다 (3): SQLServer, 세션은 SQL Server 데이터베이스에 저장됩니다 (4): Custom, Oracle, SQLServer, MongoDb, Redis에 저장할 수 있는 맞춤형 저장 방법입니다 이 글은 주로 Redis에서 세션의 저장과 공유에 대해 다룹니다
3: Redis 기반 세션 제공자 구성
(1) 아래 그림에 나타난 대로 사이트 A와 B의 홈컨트롤러에 다음과 같은 변경을 가하고, 세션 생성 및 획득 기능을 추가합니다
해당 뷰
(2) RedisProvider 구성: Microsoft.Web.RedisSessionStateProvider 아래 이미지에 보이는 대로 Nuget과 함께 Microsoft.Web.RedisSessionStateProvider를 설치하세요:
프로필 수정:
4. 부하 분산 세션 테스트
(1) 브라우저에서 다음 입력:http://192.168.152.128/ 세션 생성
(2) 브라우저에서 다음을 입력합니다:http://192.168.152.128/home/getsessionvalue, 두 개의 탭을 열고, 반드시 같은 브라우저 창에서 열어야 합니다. 그렇지 않으면 세션 ID가 확실히 달라질 수 있습니다
그림에서 볼 수 있듯이, 사이트 A는 사이트 B가 생성한 세션을 공유합니다. 아래 그림에서 보시는 것처럼 방금 redis에서 생성한 세션도 볼 수 있습니다
|