리버스 프록시 Sticky Session 설정

cloud·2024년 11월 8일
0

Reverse Proxy

목록 보기
3/5

1. 세션 생성 설정

Tomcat 기본 페이지로는 세션이 생성되지 않으므로
Tomcat의 webapps/ROOT 디렉토리에 index.jsp 파일을 열어 아래 코드를 추가

vi /opt/tomcat/webapps/ROOT/index.jsp

<% 
    // 세션 객체를 강제로 생성합니다.
    HttpSession session = request.getSession(true); 
    out.println("Session ID: " + session.getId());
%>

2. Apache 서버 BalancerMember에 route 설정

vim /etc/httpd/conf.d/tomcat.conf

<Proxy "balancer://myapp">
    BalancerMember http://172.27.0.181:8080 route=tomcat1
    BalancerMember http://172.27.0.28:8080 route=tomcat2
    
    ProxySet stickysession=JSESSIONID
</Proxy>

3. Tomcat 서버의 route 설정

vim /opt/tomcat/conf/server.xml

<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

sticky session 사용 시 사용자의 세션이 유지되므로, 로그인 상태, 장바구니 정보 등 세션 정보가 지속적으로 유지된다. 하지만, 특정 서버에 트래픽이 집중될 수 있어 부하가 고르게 분산되지 않을 수 있으며, 서버 장애 시 해당 세션이 유실될 가능성도 있다.

이러한 상황에서 외부 세션 저장소 사용하여 문제를 해결할 수 있다.
Redis, Memcached, DynamoDB와 같은 분산 세션 저장소를 사용하여 세션 데이터를 중앙화한다. 이를 통해 로드밸런서는 클라이언트를 어떤 서버에 보내도 동일한 세션 데이터를 참조할 수 있다.

0개의 댓글

관련 채용 정보