mod_jk
mod_jk를 사용하면 WAS로 연결되는 요청을 Apache2로 연결할 수가 있게 된다. 이를 통해 정적 리소스를 WAS까지 가지 않고 웹서버에서 직접 처리가 가능하여 성능을 향상시킬 수도 있고, 하나의 웹서버에 다수의 WAS를 구성하여 Load Balancing도 할 수 있다.
$APACHE_HOME/conf/workers.properties
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/jdk
ps=/
worker.list=trust
worker.trust.port=8009
worker.trust.host=localhost
worker.trust.type=ajp13
worker.trust.lbfactor=1
worker.trust.socket_keepalive=1
worker.trust.socket_timeout=10
$APACHE_HOME/conf/httpd.conf
# Tomcat 배포 위치로 DocRoot를 변경
DocumentRoot "/usr/local/apache-tomcat-7.0.14/webapps"
# 403 권한 문제를 해결
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
#Deny from all
Allow from all
</Directory>
# mod_jk.so include
LoadModule jk_module modules/mod_jk.so
# mod_jk 기본 설정
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkShmFile logs/jk-runtime-status
JkLogFile logs/mod_jk.log
JkLogLevel warn
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</IfModule>
# REST 방식의 URL 이므로 일단 모두 Mount
JkMount /project/* trust
# 제외하고자 하는 resource 형태만 Unmount
JkUnMount /project/*.manifest trust
JkUnMount /project/*.htm trust
JkUnMount /project/*.html trust
JkUnMount /project/*.js trust
JkUnMount /project/*.css trust
JkUnMount /project/*.xml trust
JkUnMount /project/*.ico trust
JkUnMount /project/*.txt trust
JkUnMount /project/font/* trust
JkUnMount /project/images/* trust
server.xml
Apache쪽 jk 설정이 모두 끝났으면 이제 Tomcat 쪽에서 AJP 연결을 해주면 된다.
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />