现在的位置: 首页 > 综合 > 正文

Apache 2.2.22整合IIS7和Tomcat7共用80端口【包括DNS域名解析、泛解析 】

2013年12月01日 ⁄ 综合 ⁄ 共 5135字 ⁄ 字号 评论关闭

服务器环境

Web 服务器:操作系统Windows Server2008

DNS 服务器:操作系统Windows Server2003

         客户端系统:Windows XP

Web服务器安装IIS7.0

Web服务器安装Tomcat7就不必介绍了,注意事项:确保安装路径没有空格[实践总结]

Web服务器安装Apache2.2.22版本:

网络域名和服务器名我是随便输入的。

接下来选择自定义安装,我选择的是:D:\JavaWorkSpace\Apache2.2\

安装完成后Apache服务器自动启动:

打开浏览器输入http://127.0.0.1,看见

It works!

说明安装成功了。

说一下IIS,我的站点配置为81访问端口,主机名iiswork.cn

 

接下来说说Tomcat7,我什么也不配置,按照默认的8080端口使用

当然我的Tomcat7是可以使用的:

 

接下来开始整合:

打开Apacheconf目录下的httpd.conf文件,

加载一下模块[就是取消#号即可]

#LoadModule proxy_module modules/mod_proxy.so                                          #加载代理模块

#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so                          #加载ftp代理模块

#LoadModule proxy_http_module modules/mod_proxy_http.so                     #加载http代理模块

#Include conf/extra/httpd-vhosts.conf                                                                    #包含虚拟主机配置文件[因为我们要为每个访问配置虚拟主机]

 

接下来打开D:\JavaWorkSpace\Apache2.2\conf\extra目录的下的虚拟主机配置文件httpd-vhosts.conf

在末尾添加如下虚拟主机配置:

<VirtualHost *:80>

         ProxyPreserveHost On

         ServerAdmin jiangtong6666@126.com

         ServerName iiswork.cn

         ServerAlias *.iiswork.cn

         DocumentRoot "C:\inetpub\wwwroot"

         DirectoryIndex iisstart.htm index.html index.asp

         ProxyPass / http://localhost:81/

         ProxyPassReverse / http://localhost:81/

</Virtualhost>

 

<VirtualHost *:80>

         ServerName tomcatwork.cn

         ServerAlias *.tomcatwork.cn

         ProxyPass / http://localhost:8080/

         ProxyPassReverse / http://localhost:8080/

</VirtualHost>

 

<VirtualHost *:80>

         ServerName tomcatdoc.cn

         ServerAlias *.tomcatdoc.cn

         ProxyPass / http://localhost:8080/docs

         ProxyPassReverse / http://localhost:8080/docs

</VirtualHost>

 

重新启动Apache服务器,在浏览器输入:

http://iiswork.cn

http://tomcatwork.cn

http://tomcatwork.cn

http://tomcatdoc.cn

 

要想使以上域名能够正确解析还要在域名服务器注册这些域名,如下:

注意每个正向查找区域里面都配置有两个主机,他们一个是与IP绑定的与父文件夹相同的主机

另一个是为了支持域名泛解析用的与IP绑定的名称为*号的主机。

所谓泛解析就是当你在域名前面补充上任何名字的二级域名的时候,那么DNS都解析到相同的IP地址,以这里为例,你将来输入iiswork.cnabc.iiswork.cnxxyy.iiswork.cn都会被解析到192.168.189这个服务器地址。

 

为了DNS解析生效我立即启动一下服务器。

客户端浏览器地址栏输入以下地址测试:

http://iiswork.cn

http://abcd.iiswork.cn

http://xyz.iiswork.cn

http://tomcatwork.cn

http://abc.tomcatwork.cn

http://xde.tomcatwork.cn

http://tomcatdoc.cn

运行前面几个都正确,但是运行最后一个出现:

此网页包含重定向循环

http://tomcatdoc.cn// 的网页生成了过多的重定向。清除此网站的 Cookie
或允许第三方 Cookie
可能会解决该问题。如果不能解决,则可能是服务器配置的问题,而不是您的计算机有问题。

以下是一些建议:

·         请稍后重新加载此网页。

·         详细了解此问题。

错误 310 (net::ERR_TOO_MANY_REDIRECTS):重定向过多。

 

IE上则干脆一整狂闪,貌似要死机。说明不能将当前Web应用的子目录用来映射成Apache上的虚拟主机。我们修改Tomcat改用多个端口来实现部署不同的应用。

修改Server.xml文件如下:

<Service name="Catalina">  

    <Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />     

    <Engine name="Catalina" defaultHost="localhost">    

      <Realm className="org.apache.catalina.realm.LockOutRealm">      

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

               resourceName="UserDatabase"/>

      </Realm>

      <Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">      

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

               prefix="localhost_access_log." suffix=".txt"

               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

                  <Context path="/" docBase="examples"/>

      </Host>

    </Engine>

  </Service>

 <!---下面是新添加的---à

  <Service name="Catalina.docs"> <!-不同和上面相同-à

    <Connector port="8081" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" /> 

    <Engine name="Catalina.docs" defaultHost="localhost"><!-不同和上面相同-à

      <Realm className="org.apache.catalina.realm.LockOutRealm">     

        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

               resourceName="UserDatabase"/>

      </Realm>

      <Host name="localhost"  appBase="webapps"

            unpackWARs="true" autoDeploy="true">      

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

               prefix="localhost_access_log." suffix=".txt"

               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

                  <Context path="/" docBase="docs"/>

      </Host>

    </Engine>

  </Service>

 

以上配置的含义就是把webapps目录下的两个Web应用程序用不同端口的服务暴露出来供单独访问。注意要删除Webapps目录下的ROOT目录或者改名,我采用的改名。

 

重新修改Apache虚拟主机的配置文件如下:

<VirtualHost *:80>

         ProxyPreserveHost On

         ServerAdmin jiangtong6666@126.com

         ServerName iiswork.cn

         ServerAlias *.iiswork.cn

         DocumentRoot "C:\inetpub\wwwroot"

         DirectoryIndex iisstart.htm index.html index.asp

         ProxyPass / http://localhost:81/

         ProxyPassReverse / http://localhost:81/

</Virtualhost>

 

<VirtualHost *:80>

        
ServerName tomcatwork.cn

        
ServerAlias *.tomcatwork.cn

        
ProxyPass / http://localhost:8080/

        
ProxyPassReverse / http://localhost:8080/

</VirtualHost>

 

<VirtualHost *:80>

        
ServerName tomcatdoc.cn

        
ServerAlias *.tomcatdoc.cn

        
ProxyPass / http://localhost:8081/

        
ProxyPassReverse / http://localhost:8081/

</VirtualHost>

 

 

重新启动Tomcat服务器,客户端浏览器地址栏输入以下地址:

http://iiswork.cn

http://abcd.iiswork.cn

http://xyz.iiswork.cn

http://tomcatwork.cn

http://abc.tomcatwork.cn

http://xde.tomcatwork.cn

http://tomcatdoc.cn

http://abc.tomcatdoc.cn

http://ttt.tomcatdoc.cn

 

全部成功!!!!!!!!!!!!!!!!!!!

更多详细配置请参见:http://httpd.apache.org/docs/2.2/vhosts/name-based.html

 

 

 

抱歉!评论已关闭.