在服务器管理的时候,我们常常遇到同时使用JSP、PHP、ASP的情况,80端口只有一个,势必造成80端口冲突的问题。不负责任的网管们往往让用户在域名后输入端口,而对于用户来说带端口的域名是非常纠结的。本文将介绍如何将Apache、Tomcat、IIS整合在一起共用80端口。
步骤如下:
1、首先,我们假设已经具有4个域名www.yoyo.com、www.sohu.com、www.tantan.com、www.xiangxiang.com。没有申请域名的童鞋们可以在C:\WINDOWS\system32\drivers\etc\hosts文件中设置一下内容以进行测试。
127.0.0.1 www.yoyo.com
127.0.0.1 www.sohu.com
127.0.0.1 www.tantan.com
127.0.0.1 www.xiangxiang.com
</p>
2、对Tomcat进行配置(假设www.tantan.com和www.xiangxiang.com两个域名(不带工程名)将访问tomcat下发布的demo1、demo2两个工程)
在C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps文件夹中分别创建demo1、demo2文件夹,并在demo1、demo2这两个文件夹下分别创建ROOT文件夹,分别将工程发布内容复制到这两个ROOT文件夹中。
在C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\server.xml文件中通过以下代码将Tomcat端口设为8081,其默认值一般为8080.
connectionTimeout=”20000″
redirectPort=”8443″ />
接着还是在该文件中找到标签,在其中删除原有的内容并设置以下内容:
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
unpackWARs=”true” autoDeploy=”true”
xmlValidation=”false” xmlNamespaceAware=”false”>
配置完成后重启Tomcat,分别通过www.tantan.com:8081和www.xiangxiang.com:8081访问2个工程,测试是否配置成功。
3、配置IIS(假设www.yoyo.com域名将访问iis上发布的站点),将其端口设置为8083,配置过程和普通的IIS配置没什么不同,只是要将其默认的80端口修改为8083.如果后面遇到权限的问题,请童鞋们google解决。
4、配置APACHE(让APACHE占用80端口,监听所有的80端口请求,并将请求代理转发给tomcat和IIS)
在C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf文件中去掉以下三句代码前的注释符号#
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
然后在该文件最后加上以下内容
#APACHE-IIS-TOMCAT
NameVirtualHost *:80
ProxyPreserveHost On
ServerName www.tantan.com
ProxyPass / http://www.tantan.com:8081/
ProxyPassReverse / http://www.tantan.com:8081/
ServerName www.xiangxiang.com
ProxyPass / http://www.xiangxiang.com:8081/
ProxyPassReverse / http://www.xiangxiang.com:8081/
ServerName www.yoyo.com
DocumentRoot “C:/abc”
ProxyPass / http://localhost:8083/
ProxyPassReverse / http://localhost:8083/
ServerName www.sohu.com
DocumentRoot htdocs
配置完成后重启Apache
最后在浏览器中分别输入www.yoyo.com、www.sohu.com、www.tantan.com、www.xiangxiang.com(不带工程名和端口号)测试访问