본문 바로가기

Web/Spring

세션 클러스터링

반응형

세션 클러스터링(Session Clustering)"은 주로 웹 애플리케이션에서 사용자 세션 정보를 여러 서버 간에 공유하여, 고가용성과 로드 밸런싱을 가능하게 만드는 기술.

 

 

1. 도메인이 다를 경우 세션 복제 이슈  

도메인이 다를경우 쿠키 공유불가.

세션 복제 자체는 가능하나

  • 서버 간 복제는 네트워크를 통해 이루어지므로 서버 내부적으로는 세션 복제가 가능합니다.
  • 하지만 사용자가 다른 도메인을 통해 접속하면, 브라우저가 다른 세션 ID를 생성하므로 복제된 세션이 있어도 사용할 수 없다.

해결 방법

1. 서브도메인 사용과 공통 도메인으로 쿠키를 설정

  • 예: app1.example.com, app2.example.com → 쿠키 도메인을 .example.com으로 설정
  • 그러면 브라우저는 동일한 세션 ID를 모든 서브도메인에 보내줍니다.

2. 쿠키가 아닌 url 파라미터로 세션전달

  • 덜 일반적이고 보안상 위험이 있음 (JSESSIONID가 URL에 노출됨)
  • 권장되지 않지만 제약 있는 환경에서는 선택지일 수 있음

3. 중앙 세션 저장소 사용(Redis 등)

  • 브라우저는 도메인마다 세션 ID를 따로 보냄.
  • 서버에서는 받은 세션 ID를 가지고 Redis에서 세션 정보를 가져옴.
  • 도메인이 달라도 중앙 저장소 덕분에 같은 사용자 데이터를 공유 가능.

 

반응형

'Web > Spring' 카테고리의 다른 글

[JPA] JPA 설명 (1) - 사용 이유  (0) 2020.06.09
[Spring] Filter와 Interceptor  (0) 2020.05.13
[Spring Boot] HttpMessageConverters  (0) 2020.05.13
[Spring Boot] Auto Configuration  (0) 2020.05.13
[spring boot] ExceptionHandler  (0) 2020.05.13