Apache Http Server와 Apache Tomcat을 분리함으로써 정적 Resource와 동적 Resource를 각각 다른 Server에서 운용하여 각 Server의 과부하를 줄일 수 있도록 하였다.
Http Server와 Tomcat을 연동하는 방법은 여러 가지가 있는데 필자의 경우 Apache 재단에서 제공하는
Tomcat connector(mod_jk)를 사용하는 방법을 선택하였다.
링크에서 mod_jk, Tomcat connector 라고 작성되어 있는 파일을 다운로드 후 압축을 풀어 mod_jk.so 파일을 Http Server의 모듈을 저장하는 Apache Httpd Directory의 modules Directory로 이동시킨다.
그 이후 Http Server의 설정을 담당하는 conf Directory의 각 파일들에 해당 내용들을 추가한다.
httpd.conf
Include conf/mod_jk.conf
LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkMountFile conf/uri.properties
</IfModule>
ui.properties
/*=tomcat
workers.properties
worker.list=tomcat
worker.tomcat.type=ajp13
worker.tomcat.host=localhost
worker.tomcat.port=8009
이후 Tomcat WAS 설정 파일을 수정하면 완료된다.
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
이렇게 WAS와 Web Server를 분리하는 경우 Web의 모든 요청 경로는 Tomcat connector 모듈을 통해 WAS로 전송되기 때문에 WAS의 Root Directory를 기준으로 적용된다.
따라서 상술한 ui.properties 에
!/Petfood/src/*=tomcat
!/Petfood/img/*=tomcat
와 같이 정적 Resource를 WAS로 적용하지 않는다는 설정을 추가하여 요청을 분리할 수 있다.
이 경우, Petfood 안의 src Directory로 들어오는 요청은 전부 Web Server Root Directory의 Petfood 안의 src 안의 파일을 응답하게 되며 아랫 문단의 !/Petfood/img/*=tomcat 또한 img 안의 파일을 응답하게 된다.
참고자료
아파치 웹 서버(apache httpd) 와 톰캣 연동하기
Window Local 환경에서 Apache + Tomcat 연동