Web Server와 WAS의 분리

sbd9762·2023년 2월 16일

Infrastructure

목록 보기
1/1

Apache Http ServerApache Tomcat을 분리함으로써 정적 Resource와 동적 Resource를 각각 다른 Server에서 운용하여 각 Server의 과부하를 줄일 수 있도록 하였다.

Http ServerTomcat을 연동하는 방법은 여러 가지가 있는데 필자의 경우 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 연동

0개의 댓글