apache 集成多个tomcat的方法
背景:
现有服务器只运行了一个网站 没有使用apache, tomcat端口为80 ,现在希望在服务器在添加一个站点 而不使用现有的tomcat.但多个tomcat不能共用一个80端口,所以希望通过apache使用80端口,然后在分发对应的tomcat,实现多个tomcat在一个服务器上共存.
网上也有很多类似的实例,本文是参考多篇文章然后自己在本机动手测试成功之后写成的,但仍有许多不足,敬请谅解
环境与软件
操作系统 xp
apache 2.2
tomcat 6.0.32
Tomcat1的设定
Shutdown 端口
<Server port="8016" shutdown="SHUTDOWN">
http 端口
<Connector connectionTimeout="20000" port="9080" protocol="HTTP/1.1" redirectPort="8443"/>
AJP 端口
<Connector port="8020" protocol="AJP/1.3" redirectPort="8443"/>
HOTST 配置
<Host appBase="webapps" autoDeploy="true" name="www.123.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
Tomcat2的设定
Shutdown 端口
<Server port="8006" shutdown="SHUTDOWN">
http 端口
<Connector connectionTimeout="20000" port="9090" protocol="HTTP/1.1" redirectPort="8443"/>
AJP 端口
<Connector port="8030" protocol="AJP/1.3" redirectPort="8443"/>
HOTST 配置
<Host appBase="webapps" autoDeploy="true" name="www.abc.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
Apache设定
httpd.conf
1. 使用apache自带的proxy模块,去掉注释使其可用
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_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
2. 去掉 Include conf/extra/httpd-vhosts.conf的注释
3.配置httpd-vhosts.conf 内容如下
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.abc.com
ProxyPass / http://www.abc.com:9090/
ProxyPassReverse / http://www.abc.com:9090/
</VirtualHost>
<VirtualHost *:80>
ServerName www.123.com
ProxyPass / http://www.123.com:9080/
ProxyPassReverse / http://www.123.com:9080/
</VirtualHost>
修改windows host文件
127.0.0.1 www.abc.com
127.0.0.1 www.123.com
启动tomcat ,apache
输入 www.abc.com www.123.com 终于不用使用端口号,大功告成 哦了!
本人对apache配置不是很清楚, 也不了解apache proxy的工作原理,在apache和tomcat集成方便如有不足之处 请多多指教,共同进步 , 谢谢!
来源 http://www.iteye.com/topic/1126930