이번 테크 포스팅에서는 톰캣 세션 클러스터링(Tomcat Session Clustering)에 대해 알아볼텐데요, ① 1대 서버에서 WEB과 WAS를 같이 사용하는 방법과 ② LB 1대 WEB, WAS 각 2대씩 사용하는 방법에 대해 알아보겠습니다.
톰캣 세션 클러스터링이란?
세션 클러스터링은 WAS가 2대 이상 설치되어 있을 경우 동일한 세션으로 세션관리 하는 것을 의미합니다. 보통 세션 클러스터링은 WAS 설정으로 세팅할 수 있습니다. Tomcat에서 조차도 세션 클러스터링을 설정하는 방법이 있습니다.
① 1대 서버에서 WEB, WAS 같이 사용하며 Tomcat Session Clustering 설정 방법
※ 1대 서버에서 Tomcat Session Clustering 설정은 이중화 구성이 아닙니다.
테스트 버전 : CentOS 6.9 64bit, Apache(2.2.13), Tomcat(7.0), JDK(1,7)
1. Tomcat2 생성
2. 로드밸런서 설정
3. 세션 클러스터링 설정
4. Apache, tomcat 재시작
5. Tomcat Session Clustering test
A. “Tomcat Session Clustering Test” 아래 내용 참고하여 index.jsp 파일 생성
B. Session Clustering 확인
C. Current Session ID : E34CA3BFD1A71D68A3CB6D03CA8D97D3.tomcat2 마지막 Tomcat2 확인
※ Tomcat2번으로 연결된 것
D. tomcat2 중지
※ C번에서 Tomcat1 확인 시 Tomcat1번 중지
E. http://서버IP/index.jsp 새로 고침 후 ‘Current Session ID’ 확인 시 세션 값이 기존과 동일하고 Tomcat1 확인
Current Session ID : E34CA3BFD1A71D68A3CB6D03CA8D97D3.tomcat1 마지막 Tomcat1 확인
※ 세션 값 동일 Tomcat2번에서 Tomcat1번으로 변경된 것 확인
F. 반대로 Tomcat1번 중지 후 Tomcat2번 실행 시 E번 내용과 일치 여부 확인
② LB 1대 WEB, WAS 각 2대씩 사용하여 Tomcat Session Clustering 설정 방법
테스트 환경 : LB 1대, WEB 2대, WAS 2대
※ 각 서버에는 Apache 및 Tomcat 환경이 구성되었다는 전제로 진행
WEB : Apache2.4 WAS : JAVA1.8, Tomcat8.X
1. WEB 서버 설정 (2대 공통)
2. httpd.conf 설정 (내용 추가)
3. vhosts.conf 설정 (내용 추가)
4. WAS 서버 설정 (2대 공통)
5. web.xml 설정 (내용 추가)
6. Tomcat Session Clustering 구성 확인
→ Session Clustering 확인 절자
WAS 2대 Tomcat start log 확인
아래와 같이 각 WAS 서버에서 로그 확인 시 멤버 추가 로그와 IP, Port 확인
- WAS01 (IP : 172.27.1.3)
17-May-2017 21:07:22.416 INFO [Membership-MemberAdded.] org.apache.catalina.ha.tcp.SimpleTcpCluster.memberAdded Replication member added:org.apache.catalina.tribes.membership.MemberImpl[tcp://{172, 27, 0, 81}:4011,{172, 27, 0, 81},4011, alive=19538, securePort=-1, UDP Port=-1, id={35 -123 -62 23 10 -31 73 -5 -78 -89 2 -41 41 84 105 -57 }, payload={}, command={}, domain={}, ]
- WAS02 (IP : 172.27.0.81)
17-May-2017 21:07:23.127 INFO [Membership-MemberAdded.] org.apache.catalina.ha.tcp.SimpleTcpCluster.memberAdded Replication member added:org.apache.catalina.tribes.membership.MemberImpl[tcp://{172, 27, 1, 3}:4010,{172, 27, 1, 3},4010, alive=1019, securePort=-1, UDP Port=-1, id={-15 -5 -50 50 41 119 73 -57 -89 103 25 62 3 -100 -77 -108 }, payload={}, command={}, domain={}, ]
7. Tomcat Session Clustering Test
A. “Tomcat Session Clustering Test” 아래 내용 참고하여 index.jsp 파일 생성
1. WEB 서버 2대는 LB로 이중화 되어있으므로 1대 서버에 장애가 발생하여도 Session은 동일
2. WAS 서버 2대 또한 mod_jk 설정으로 이중화 되어있으므로 1대 서버에 장애가 발생하여도 Session은 동일
※ Tomcat 8.x 특이사항
톰캣 8.x 버전에서 server.xml 중 아래 옵션 넣을 시 실행 에러가 발생하고 있습니다.
8.x 버전 넘어오면서 없어진 라이브러리로 확인되며 해당 옵션 없어도 클러스터링 정상 동작
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
- 시스템통합운영센터
[출처] ‘톰캣 세션 클러스터링’ 사용 방법 알아보기|작성자 디딤365
'프로그램 활용 > 웹서버' 카테고리의 다른 글
[분산처리] WAS 이중화와 세션클러스터링 (1) | 2023.10.23 |
---|---|
로드 밸런싱 & 인프라 이중화 구축 (1) | 2023.10.23 |
Drupal + Apache + PostgreSQL (0) | 2023.07.27 |
docker drupal8 postgresql 구축 (0) | 2023.07.27 |
NGINX와 NGINX Unit 앱 서버로 WordPress 설치 (0) | 2023.07.18 |