Apache、Tomcat、IIS整合共用80端口

雪域幽狐 2013-06-13 20:55 阅读:5495


    由于一些历史原因,开发的系统可能有Java的,也有.Net的,或者PHP的。如果部署在一个服务器上,当都想使用80端口时,就会造成冲突。对于简单的各自使用一个端口的事情不在本文讨论范围内,这样是简单了,但用户体验却降低了。
    下文将介绍如何将Apache、Tomcat、IIS整合共用80端口。
    本文解决方案是使用虚拟主机方式来解决,即采用多个域名方式来解决。如果只有一个域名或直接使用IP,参考后续文章《Tomcat、IIS、JK整合共用80端口》。
    
    [b]一、确认Tomcat、IIS正常运行[/b]
    把Tomcat的端口设置为8080(当然可根据自己情况分配其他端口),把IIS的端口设置为8081,确认使用http://IP:8080和http://IP:8081能正常访问Web服务。
    
    [b]二、准备好域名[/b]
    至少准备2个域名,1个域名对应Tomcat,另外一个域名对应IIS。比如本站www.nowfox.com对应IIS,weibo.nowfox.com对应tomcat。把这两个域名的A记录都指向Web服务器的IP。
    对于没有域名的想进行测试的,可修改hosts文件进行测试。
    
    [b]三、安装配置Apache[/b]
    本站采用的是2.2.22版本,安装完毕后,打开conf/httpd.conf文件,去掉以下两行代码前的注释符号#,这两行是为了启动代理。
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    
    去掉Include conf/extra/httpd-vhosts.conf代码前的注释符号,即启用conf/extra/httpd-vhosts.conf文件,在conf/extra/httpd-vhosts.conf文件中,加入以下代码
<VirtualHost *:80>
ServerName www.nowfox.com
ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/
</VirtualHost>
<VirtualHost *:80>
ServerName weibo.nowfox.com
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>

注意:在ProxyPass最后有“/”。
如果不在conf/extra/httpd-vhosts.conf中配置,想直接在conf/httpd.conf中配置,需要增加一行
NameVirtualHost *:80
表示根据Name来区分虚拟主机。

    [b]四、重启、测试[/b]
    重启Apache,输入对应的域名,不用再输入端口,即可访问IIS和Tomcat了。

0条评论

登陆后可评论