카테고리 없음

Apache + Tomcat + Python + ... (vhost)

Lawmin 2011. 1. 17. 15:50
웹서버인 Apache 에 각종 Connector 를 이용해 다른 서버(WAS)들을 붙일 수 있다.


[APACHE_HOME/conf/httpd.conf]
1. 모듈 Load
LoadModule jk_module modules/mod_jk.so                   # Apache - Tomcat
LoadModule python_module modules/mod_python.so     # Apache - Python

2. 모듈 설정
<IfModule jk_module>
JkWorkersFile conf/workers.properties  
JkShmFile d:/logs/httpd_jkshm.log
JkLogFile d:/logs/httpd_jklog.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</IfModule>

* 만약 별도로 관리하고 싶다면, 위의 내용을 별도로 파일로 만들어서 Include 를 이용한다.
Include conf/extra/httpd-tomcat.conf

(httpd-tomcat.conf) 예제

LoadModule jk_module modules/mod_jk.so                   # Apache - Tomcat
<IfModule jk_module>
JkWorkersFile conf/workers.properties  
JkShmFile d:/logs/httpd_jkshm.log
JkLogFile d:/logs/httpd_jklog.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
</IfModule>

[APACHE_HOME/conf/workers.properties] 생성 (필요시 worker명 바꿔서 list 추가)
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=1
worker.worker1.connection_pool_timeout=600
worker.worker1.socket_keepalive=1

[APACHE_HOME/conf/extra/httpd-vhosts.conf] 수정 또는 생성 (Virtual Host 사용시)
(아래는 TRAC 사용을 위해 /trac 은 python 으로, 기타 / 는 Tomcat 으로 연결한 상태이다.)
NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin 이메일주소
DocumentRoot "d:/webapps/"
ServerName 서버주소
JkMount /*.jsp worker1
ErrorLog "d:/logs/httpd_root_error.log"
CustomLog "d:/logs/httpd_root_access.log" common
<Directory "d:/webapps/">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir d:/projects
PythonOption TracUriRoot /trac
</Location>
<LocationMatch "/trac/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile d:/Repositories/htpasswd
Require valid-user
</LocationMatch>
</VirtualHost>

[TOMCAT_HOME/conf/server.xml] 설정 변경 (필요시)
<Host name="localhost"  appBase="d:/webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
            
        <Context path="/" docBase="" debug="0"/>

[TOMCAT_HOME/conf/Catalina/localhost] Context Root 추가
필요시마다 위 디렉토리에 디렉토리명.xml로 각 서비스의 root 를 추가한다.

app.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" reloadable="true"/>

위와 같이 추가하면, host/app 디렉토리를 root 로 하는 새로운 context 가 생성된다.