服务器环境
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是可以使用的:
接下来开始整合:
打开Apache下conf目录下的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 [email protected]
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://tomcatwork.cn
http://tomcatdoc.cn
要想使以上域名能够正确解析还要在域名服务器注册这些域名,如下:
注意每个正向查找区域里面都配置有两个主机,他们一个是与IP绑定的与父文件夹相同的主机
另一个是为了支持域名泛解析用的与IP绑定的名称为*号的主机。
所谓泛解析就是当你在域名前面补充上任何名字的二级域名的时候,那么DNS都解析到相同的IP地址,以这里为例,你将来输入iiswork.cn、abc.iiswork.cn、xxyy.iiswork.cn都会被解析到192.168.1。89这个服务器地址。
为了DNS解析生效我立即启动一下服务器。
客户端浏览器地址栏输入以下地址测试:
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 "%r" %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 "%r" %s %b" />
<Context path="/" docBase="docs"/>
</Host>
</Engine>
</Service>
以上配置的含义就是把webapps目录下的两个Web应用程序用不同端口的服务暴露出来供单独访问。注意要删除Webapps目录下的ROOT目录或者改名,我采用的改名。
重新修改Apache虚拟主机的配置文件如下:
<VirtualHost *:80>
ProxyPreserveHost On
ServerAdmin [email protected]
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://httpd.apache.org/docs/2.2/vhosts/name-based.html