Web Servers

Apache와 Tomcat 연동 시 worker.properties 설정 방법

midworker 2025. 5. 13. 20:44
반응형

Apache와 Tomcat 연동 시 worker.properties 설정 방법

Apache HTTP Server에서 Tomcat과 연동할 때 mod_jk 모듈을 사용하는 경우, worker.properties 파일을 통해 트래픽을 전달할 Tomcat 인스턴스 정보를 설정합니다. 이 글에서는 worker.properties의 기본 구성과 주요 옵션, 실전 예제를 소개합니다.


1. 기본 구조

# 워커 목록 정의
worker.list=tomcatWorker

# tomcatWorker 정의
worker.tomcatWorker.type=ajp13
worker.tomcatWorker.host=localhost
worker.tomcatWorker.port=8009

# 추가 설정 (옵션)
worker.tomcatWorker.lbfactor=1
worker.tomcatWorker.connection_pool_timeout=600
worker.tomcatWorker.socket_timeout=300

2. 주요 옵션 설명

설정 항목 설명
worker.list 사용할 워커 이름을 나열합니다. 쉼표로 구분
worker.<name>.type 워커 타입을 설정. 일반적으로 ajp13 사용
worker.<name>.host Tomcat이 구동 중인 서버의 IP 또는 도메인
worker.<name>.port Tomcat의 AJP 커넥터 포트 (기본 8009)
worker.<name>.lbfactor 로드밸런싱 시 가중치 설정
worker.<name>.connection_pool_timeout 커넥션 풀 타임아웃 (초)
worker.<name>.socket_timeout 소켓 타임아웃 (초)

3. Apache 연동 설정 예 (httpd.conf 또는 mod_jk.conf)

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info

# 요청 매핑
JkMount /app/* tomcatWorker

4. 실전 팁

  • AJP 포트(8009)는 외부 접근을 반드시 차단해야 합니다. 보안 그룹 또는 방화벽 설정을 통해 제한하세요.
  • Tomcat 9 이상부터는 server.xml의 AJP 커넥터에 secretRequired="true"가 기본입니다. 보안 키(secret) 설정 여부를 확인하세요.
  • mod_jkmod_proxy_ajp보다 정밀한 제어가 가능해 대규모 환경에서 유리합니다.

5. 로드밸런싱 설정 예제

worker.list=loadbalancer

worker.node1.type=ajp13
worker.node1.host=192.168.0.101
worker.node1.port=8009

worker.node2.type=ajp13
worker.node2.host=192.168.0.102
worker.node2.port=8009

worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=node1,node2
worker.loadbalancer.sticky_session=1
  • sticky_session=1로 설정하면 세션 유지를 위해 같은 서버에 요청을 계속 전달합니다.
  • 장애 대응을 위해 worker.node1.activation=ACT와 같은 failover 설정도 추가할 수 있습니다.

마무리

worker.properties는 단순히 Tomcat 연결을 넘어서, 로드밸런싱, 장애 조치, 세션 처리까지 제어할 수 있게 해주는 중요한 구성입니다.
실제 운영 환경에서는 Tomcat의 AJP Connector, Apache의 mod_jk.conf, 방화벽 설정까지 함께 고려해 설계하세요.

반응형