반응형
[4편] mod_proxy_ajp를 이용한 Apache-Tomcat 연동 실무 가이드
이전 3편까지 Apache, Tomcat의 설치 및 설정을 마쳤다면 이제 두 서비스를 연동하여 하나의 웹 시스템으로 운영해야 합니다.
이번 편에서는 mod_proxy_ajp
를 활용한 Apache-Tomcat 연동 실무 설정을 정리합니다.
✅ Apache-Tomcat 연동 방식 비교
방식 | 설명 | 장점 | 단점 |
---|---|---|---|
mod_jk |
별도 모듈(mod_jk.so)을 통해 AJP 프로토콜로 연동 | 고성능, 정교한 로드밸런싱 | 설정 파일 복잡, 유지 어려움 |
mod_proxy_ajp |
Apache 기본 모듈로 AJP 연동 | 설정 단순, Apache 2.4 이상 기본 포함 | 성능과 기능 제한적 |
mod_proxy_http |
HTTP 기반 프록시 연동 | HTTPS 환경 대응 유리 | 헤더 전송 한계, 세션 공유 복잡 |
✅ mod_proxy_ajp 구성 흐름
[Client] → [Apache:80] --AJP--> [Tomcat:8009]
✅ Apache 설정 예시 (httpd.conf)
🔹 mod_proxy 모듈 활성화 확인
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
🔹 AJP 프록시 연동 설정
<IfModule mod_proxy.c>
ProxyRequests Off
ProxyPreserveHost On
<Proxy balancer://tomcat-cluster>
BalancerMember ajp://127.0.0.1:8009 route=tomcat1
ProxySet stickysession=JSESSIONID
</Proxy>
ProxyPass /app/ balancer://tomcat-cluster/app/
ProxyPassReverse /app/ balancer://tomcat-cluster/app/
</IfModule>
route=tomcat1
은 Tomcat의jvmRoute
설정과 일치해야 함
✅ Tomcat 설정 (server.xml)
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
...
</Engine>
<Connector port="8009" protocol="AJP/1.3"
connectionTimeout="20000"
redirectPort="8443" />
✅ Sticky Session이 필요한 이유
- 클러스터 환경에서 세션이 유지되도록 하기 위해 사용
- Apache는 JSESSIONID 쿠키의
route
값을 읽고 해당 서버로 트래픽 전달
예:
JSESSIONID=1234567890ABCDEF.tomcat1
✅ 설정 확인 및 테스트
1. Apache 재기동
systemctl restart httpd
2. Tomcat 로그 확인
/logs/localhost_access_log.*.txt
로 AJP 요청이 정상 유입되는지 확인
3. 브라우저 쿠키 확인
- 개발자 도구 >
JSESSIONID
값 확인 →tomcat1
route가 붙어야 정상
✅ 트러블슈팅 포인트
증상 | 원인 |
---|---|
502 Bad Gateway | Tomcat 미기동 or AJP 포트 오류 |
세션 초기화 반복 | jvmRoute 불일치, stickySession 미설정 |
프록시 헤더 누락 | ProxyPreserveHost 미설정 |
✅ 마무리
mod_proxy_ajp
는 mod_jk
보다 설정이 간단하고 Apache 내장 모듈이므로 별도 빌드 없이도 연동이 가능합니다.
클러스터 구성과 세션 유지를 위해 route
설정과 ProxySet stickysession
조합은 꼭 확인해야 합니다.
반응형
'Application Servers & Java' 카테고리의 다른 글
[6편] Apache-Tomcat 운영 중 장애와 트러블슈팅 사례 모음 (0) | 2025.05.16 |
---|---|
[5편] Tomcat 설정 파일 완전 해설 – web.xml, context.xml, server.xml 핵심 정리 (0) | 2025.05.16 |
[3편] Tomcat 설치 및 설정 실무 가이드 – 디렉터리 구조, 커넥터 설정, WAR 배포 (1) | 2025.05.15 |
JBoss 장애 사례: 설정 실수 및 시스템 환경 문제로 인한 장애 (0) | 2025.05.15 |
JBoss 장애 사례: 세션 끊김, 로그 비정상, 비정상 배포 장애 (0) | 2025.05.15 |