1. 安裝apache2.2 參見:
http://ttitfly.javaeye.com/admin/show/127337
2.需求概況:
有2個服務:www.test.com, bbs.test.com。分別對應2個tomcat下的2個web應用。由apache httpd作為互聯網接入服務器,在80端口接收對這2個服務的請求。apache httpd再將這2個請求分別對應到不同的后端web服務器(Tomcat)處理。
3.配置域名映射到本機即127.0.0.1,同時配置service域名
Java代碼

- 127.0.0.1 localhost www.test.com www.service.test.com bbs.test.com bbs.service.test.com
4. 分別在2個tomcat里分別部署一個非常簡單的應用。
第一個tomcat :端口:8080
編輯$TOMCAT_HOME/conf/server.xml
添加一個Host
Java代碼

- <Host name="www.service.test.com" unpackWARs="true" autoDeploy="true"
- xmlValidation="false" xmlNamespaceAware="false"/>
<Host name="www.service.test.com" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"/>
再在$TOMCAT_HOME/conf/Catalina下建立一個目錄:www.service.test.com
然后在www.service.test.com目錄下建立一個ROOT.xml,內容為:
Java代碼

- <Context docBase="/home/mahaibo/app/test"
- privileged="true" antiResourceLocking="false" antiJARLocking="false">
- </Context>
<Context docBase="/home/mahaibo/app/test"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
docBase指向具體的項目路徑
同理第二個tomcat(端口8088)也是一樣的做法:
編輯$TOMCAT_HOME/conf/server.xml
添加一個Host:
Java代碼

- <Host name="bbs.service.test.com" unpackWARs="true" autoDeploy="true"
- xmlValidation="false" xmlNamespaceAware="false"/>
<Host name="bbs.service.test.com" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false"/>
然后在$TOMCAT_HOME/conf/Catalina下建立一個目錄:bbs.service.test.com
再在bbs.service.test.com目錄下建立一個ROOT.xml,內容為:
Java代碼

- <Context docBase="/home/mahaibo/app/bbs"
- privileged="true" antiResourceLocking="false" antiJARLocking="false">
- </Context>
<Context docBase="/home/mahaibo/app/bbs"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
5. 分別啟動tomcat,可以通過http://www.service.test.com:8080和http://bbs.service.test.com:8088訪問
6. 配置apache httpd.conf文件。
找到apach/conf/httpd.conf文件,確認下面這些文字行前面沒有"#"注釋號:
Java代碼

- LoadModule proxy_module modules/mod_proxy.so
- LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
- LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
- LoadModule proxy_connect_module modules/mod_proxy_connect.so
- LoadModule proxy_http_module modules/mod_proxy_http.so
- LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
并增加虛擬主機配置:
Java代碼

- NameVirtualHost *:80
- <VirtualHost *:80>
- ServerName www.test.com
- ProxyIOBufferSize 8192
- ProxyRequests Off
- ProxyVia Full
- ProxyPass / http://www.service.test.com:8080/ smax=5 max=20 ttl=120 retry=300
- </VirtualHost>
-
- <VirtualHost *:80>
- ServerName bbs.test.com
- ProxyIOBufferSize 8192
- ProxyRequests Off
- ProxyVia Full
- ProxyPass / http://bbs.service.test.com:8088/ smax=5 max=20 ttl=120 retry=300
- </VirtualHost>
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.test.com
ProxyIOBufferSize 8192
ProxyRequests Off
ProxyVia Full
ProxyPass / http://www.service.test.com:8080/ smax=5 max=20 ttl=120 retry=300
</VirtualHost>
<VirtualHost *:80>
ServerName bbs.test.com
ProxyIOBufferSize 8192
ProxyRequests Off
ProxyVia Full
ProxyPass / http://bbs.service.test.com:8088/ smax=5 max=20 ttl=120 retry=300
</VirtualHost>
7.啟動apache
Java代碼

- ./apachectl start
8 可以通過訪問http://www.test.com和http://bbs.test.com來分別訪問2個不同tomcat下的不同應用了。