2013년 7월 18일 목요일

apache - tomcat, jetty 연동

0. overview











- 위와 같은 구성의 Apache (Web) + Tomcat/Jetty (WAS) 연동을 위한 설정이다.

1. Download Apache HTTP server
 - http://httpd.apache.org/download.cgi#apache22에서 httpd-2.2.22-win32-x86-openssl-0.9.8t.msi 파일 다운로드 후 디폴트 설치

2. Download Apache Tomcat connector
 - http://apache.tt.co.kr/tomcat/tomcat-connectors/jk/binaries/windows/ 에서 tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip 파일을 다운로드 mod_jk.so 파일을 아파치 설치 폴더의 modules 폴더에 복사한다

3. Apache web server configuration 
 - httpd.conf에서 아래와 같이 설정한다.
...
Include conf/mod_jk.conf
NameVirtualHost *:80
<VirtualHost *:80>
                  ServerName 1.1.1.1
                  DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/root"
                  JkMount /*.jsp was
                  JkMount /servlet was               
                  JkMount /birt/* was
                 
                  JkMount /mobile/* mobile
</VirtualHost>

ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /jetty http://ip:port/jetty
ProxyPreserveHost On

ProxyStatus On
...

3.1. Tomcat 연동
 - Include conf/mod_jk.conf : mod_jk configuration 파일을 include 한다
 - DocumentRoot : 아파치 root 폴더를 지정한다. http://x.x.x.x/index.html 로 접근한다면 DocumentRoot로 지정된 폴더의 index.html이 호출된다.
 - JkMount /*.jsp was: jsp 파일을 servlet container로 전달하는 설정이다. “was”는 worker.properties 파일에 정의 되어 있다

3.2. Jetty 연동
 - Jetty 연동을 위한 방법은 아래 3가지 방법이 있다. Jetty 에서 권장하는 1번 방법으로 설정한다
1. Using apache mod_proxy and an normal Jetty HTTP connector.
2. Using apache mod_proxy_ajp and the Jetty AJP connector.
3. Using apache mod_jk and the Jetty AJP connector

 - 설정 파일의 ProxyPass /jetty http://ip:port/jetty에 해당하는 부분이 proxy를 이용한 연동 설정이다. (reverse proxy 방법) jetty 만을 위한 설정은 proxy 설정으로 끝난다

4. mod_jk.conf
LoadModule jk_module modules/mod_jk.so
<IfModule mod_jk.c>
                  JkWorkersFile conf/workers.properties
                  JkLogFile logs/mod_jk.log
                  JkLogLevel info
                  JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
                  JkRequestLogFormat "%w %V %T"

</IfModule>

 - 디폴트로 아파치 설치시에는 해당 파일이 없으므로 위 내용으로 파일을 작성한 후 conf 폴더에 저장한다. LoadModule 를 통해 해당 모듈을 load한 후 기타 설정을 한다. 중요한 부분은 workers.properties를 설정한 부분이다

5. workers.properties
worker.list=was, mobile
worker.conv_bp.port=123
worker.conv_bp.host=10.10.10.10
worker.conv_bp.type=ajp13

worker.mobile.port=321
worker.mobile.host=20.20.20.20
worker.mobile.type=ajp13

 - tomcat ajp13 프로토콜을 이용한 연동 설정이다. was, mobile 두개의 tomcat과 연동하는 설정이다. Tomcat server.xml ajp13 포트를 확인한 후 작성한다.

6. ref

댓글 없음:

댓글 쓰기