./categories/server
Apache Tomcat mod_jk 연동
역할
Apache(Web)=정적, Tomcat(WAS)=동적. 연동: mod_jk / mod_proxy / mod_proxy_ajp.
흐름(mod_jk): Client→Apache(80) → 동적은 AJP(8009)→Tomcat → Apache→Client
mod_jk 설치
yum install gcc gcc-c++ httpd-devel
# connectors: https://tomcat.apache.org/download-connectors.cgi
tar zxvf tomcat-connectors-*.tar.gz
cd tomcat-connectors-*/native
./configure --with-apxs=/usr/bin/apxs # 또는 /usr/sbin/apxs
make && make install
httpd.conf
LoadModule jk_module modules/mod_jk.so
VirtualHost
<VirtualHost *:80>
ServerName localhost
JkMount /*.jsp tomcat
JkMount /*.json tomcat
JkMount /*.xml tomcat
JkMount /*.do tomcat
</VirtualHost>
conf.modules.d/mod_jk.conf
<IfModule mod_jk.c>
JkWorkersFile conf/workers.properties
JkShmFile run/mod_jk.shm
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%y %m %d %H:%M:%S] "
</IfModule>
workers.properties
worker.list=tomcat
worker.tomcat.port=8009
worker.tomcat.host=localhost
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1
Apache·Tomcat 재시작 후 8080 직접 vs 80 경유가 동일하면 성공.
점검
- ROOT Context:
conf/Catalina/localhost/ROOT.xml
<Context docBase="/home/<user>/www" debug="0" privileged="true" reloadable="true"></Context>
- SELinux:
chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so - VirtualHost 충돌 여부
./comments