Web(Httpd) – WAS(Tomcat) 연동 : mod_jk
httpd-devel 패키지 설치
# dnf install httpd-devel
# rpm -qa | grep httpd-devel
httpd-devel-2.4.37-47.module+el8.6.0+14529+083145da.1.x86_64
* mod_jk 설치
http://tomcat.apache.org ==> Tomcat Connectors
tomcat-connectors-1.2.48-src.tar.gz 다운로드
# cd /opt/
압축풀기
# cd tomcat-connectors-1.2.48-src/native/
# wheris apxs
apxs: /usr/bin/apxs /usr/share/man/man1/apxs.1.gz
# ./configure --with-apxs=/usr/bin/apxs
# make
# make install
확인
# ll /etc/httpd/modules/*jk*
-rwxr-xr-x 1 root root 1565864 Mar 1 12:34 /etc/httpd/modules/mod_jk.so
* 설정
# vi /etc/httpd/conf/httpd.conf
LoadModule jk_module modules/mod_jk.so
# cd /etc/httpd/conf.d/
# vi mod_jk.conf
<IfModule jk_module> # workers.properties 파일의 위치를 지정 # worker란 들어온 요청을 처리하기 위한 톰캣 인스턴스 JkWorkersFile conf.d/workers.properties # mod_jk 로그파일 위치를 지정 JkLogFile logs/mod_jk.log # 로그레벨을 지정 [debug/error/info] JkLogLevel info # 로그에 출력되는 시간 포멧을 지정 JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" JkShmFile logs/mod_jk.shm # 아파치로 부터 들어오는 요청에 대해서 Url 패턴별로 workers.properties에 # 정의한 worker에게 매핑시키는 설정을 지정 JkMountFile conf.d/uriworkermap.properties </IfModule> |
# vi workers.properties
# list는 mod_jk가 사용할 모든 작업자리스트 기술(콤마로 구분) # type은 톰캣과 통신할 프로토콜을 정의(ajp12, ajp13, ajp14, jni, lb) # ajp13프로토콜이 가장 널리 사용되며, lb는 로드밸런싱에 사용. # host는 대상 톰캣의 IP # port는 톰캣과 통신할 포트 worker.list=worker1 worker.worker1.type=ajp13 # 같은 서버 #worker.worker1.host=localhost # 같은 서버 #worker.worker1.host=192.168.0.39 # 다른 서버 위치 worker.worker1.host=192.168.2.173 worker.worker1.port=8009 |
# vi uriworkermap.properties
# /docs/=worker1 : /docs 경로가 들어오면 workers.properties에 정의한 worker1 톰캣인스턴스로 매핑 , 설치된 톰캣의 도큐먼트 페이지로 이동 # /* : 모든 요청 /*=worker1 |
2번 웹서버에는 2로 설정
* WAS 설정
# vi /opt/tomcat/conf/server.xml
<Connector protocol="AJP/1.3" address="0.0.0.0" port="8009" redirectPort="8443" secretRequired="false" /> |
<Connector port="80" protocol="HTTP/1.1" |
# /opt/tomcat/bin/shutdown.sh
# /opt/tomcat/bin/startup.sh
# systemctl restart httpd
접속 테스트