Tomcat 기본 페이지로는 세션이 생성되지 않으므로
Tomcat의 webapps/ROOT 디렉토리에 index.jsp 파일을 열어 아래 코드를 추가
vi /opt/tomcat/webapps/ROOT/index.jsp
<%
// 세션 객체를 강제로 생성합니다.
HttpSession session = request.getSession(true);
out.println("Session ID: " + session.getId());
%>
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>
vim /opt/tomcat/conf/server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
sticky session 사용 시 사용자의 세션이 유지되므로, 로그인 상태, 장바구니 정보 등 세션 정보가 지속적으로 유지된다. 하지만, 특정 서버에 트래픽이 집중될 수 있어 부하가 고르게 분산되지 않을 수 있으며, 서버 장애 시 해당 세션이 유실될 가능성도 있다.
이러한 상황에서 외부 세션 저장소 사용하여 문제를 해결할 수 있다.
Redis, Memcached, DynamoDB와 같은 분산 세션 저장소를 사용하여 세션 데이터를 중앙화한다. 이를 통해 로드밸런서는 클라이언트를 어떤 서버에 보내도 동일한 세션 데이터를 참조할 수 있다.