双IP实现iis和tomcat共用80端口
原创
©著作权归作者所有:来自51CTO博客作者turbomail_zhw的原创作品,请联系作者获取转载授权,否则将追究法律责任
操作其实也很简单的,首先禁用iis的套接字池,iis绑定一个ip,然后tomcat在绑定另一个ip,最后重启下服务器即可。以下有一个简单操作的说明。
禁用IIS的套接字池(如果这一步没调好,便不会成功),在微软官方网站上有解释:
概要
在下列情况下,您可能需要禁用套接字池:
1、承载的站点数目不多。
2、有特殊的安全考虑。
3、另一个应用程序或服务器需要某个 IP 地址上的端口 80。
更多信息
套接字池会导致“Internet 信息服务”(IIS) 侦听所有 IP 地址,这样,可能会对具有多个网络的安全域造成安全隐患。另外,带宽调节和性能调整会应用于所有针对同一端口(例如,端口 80)进行配置的 Web 站点。如果基于每个站点进行带宽调节或性能调整,则必须禁用套接字池。
由于 DisableSocketPooling 在 IIS 6.0 元数据库架构 (MBSchema.xml) 中被定义为有效属性,所以,您仍然可以使用
Adsutil.vbs 设置该属性,但这种设置不起作用。IIS 6.0 中的功能是新增的核心级别驱动程序HTTP.sys 的一部分。要配置 HTTP.sys,您必须使用Httpcfg.exe。 有关如何在 IIS 6.0 中禁用套接字池的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
813368 (http://support.microsoft.com/kb/813368/) IIS 6.0:设置配置数据库数据 DisableSocketPooling 没有作用
第一部分:禁用套接字池
要禁用套接字池,请执行下列步骤:
1. 打开命令提示符并确保您位于 X:\Inetpub\Adminscripts 文件夹(其中 X 是 IIS 安装驱动器)中。为此,请在命令提示符下键入以下
行:
X:
CD\Inetpub\Adminscripts
2. 打开 Adminscripts 文件夹后,请在命令提示符下键入以下行:
cscript adsutil.vbs set w3svc/disablesocketpooling true
3. 该命令反馈如下:
disablesocketpooling :(BOOLEAN) True
4. 停止 IIS Admin 服务,然后再启动它。
5. 重新启动 WWW 服务。
6.接下来设置IIS要监听的ip地址。到2003的CD下的 support/tools/Support.cab。解压出httpcfg.exe文件,COPY到
windows/system32/目录下,用法自己看帮助
命令行:
绑定到某IP: httpcfg set iplisten -i
192.168.0.102
即命令使用IIS的只监听指定的IP及端口
查看绑定: httpcfg query iplisten
删除绑定: httpcfg delete iplisten -i 192.168.0.102
第二部分:tomcat的设置
IIS部分到此就设置好了,接下来设置Tomcat,当然或者你用Apache,Resin等也都可以,在Tomcat的配置文件Server.xml里 找到
<Connector port="80"
protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443"/>
<Connector port="80"
protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" address="192.168.0.101"/>
在后面添加上需要Tomcat监听的ip地址即可,例如:address="192.168.0.101"
Apache,Resin或者其他WEB服务器软件都应该有相应的设置的,自己找一下即可。
好了接下来重启下服务器,然后启动iis和tomcat服务,分别浏览器访问下iis和tomcat服务看看是否正常