首页| 论坛| 消息
主题:使用两个IP实现IIS和Tomcat或Apache共用80端口
命运天空发表于 2010-07-23 10:40

前段时间有个JSP网站要在服务器上部署,由于服务器上根本没配置过jsp环境,于是装了Jdk和Tomcat,过程还算顺利,很快就安装好了,但是Tomcat的默认端口是8080,访问网站也带个端口多么不爽,因为服务器上有很多ASP站点,又不能不用IIS,于是第一个想到的便是跟IIS6.0整合,baidu google了大半天,搜出来文章倒是很多,也不知是由于我安装的是最新的JDK和Tomcat,的原因还是权限原因(为了安全,更改过多处权限),总之就是不成功,换了两台服务器也没配置成功,到最后不是不能正确运行,就是提示函数不正确,到网上搜,很多人问之类的问题,但几乎没有人正了把经回答的,有些“热心”的倒还说两句“重装一下看看?”“再从头到尾检查一遍试试”。。。算了还是自己搞吧。



继续搞啊搞,还是不行,最后干脆不搞了,心想即使弄好了,性能还不知怎么样呢。于是想另外的解决方法,因为服务器所在的网络有空闲的ip,便想何不让IIS用一个ip,Tomcat用一个ip,都使用80端口?问了几个人都说不行,两个软件用同一个端口那不冲突么,也有的说两个ip那得需要两块网卡啊。服务器上倒是有两块网卡,但就插了一根网线,另一个闲着。我就是要用一块网卡,两个ip,因为在TCP/ip协议属性-》高级中,一块网卡是可以添加多个ip地址的,iis与Tomcat分别监听不同ip的80端口,OK,开始吧。



我们知道IIS默认情况下是监听所有ip地址的80端口的,也就是说,在网站属性中只要选择“全部未分配”,则该网站就可以使用所有本机可用的ip地址。显然这个不符合我们现在的要求,我们首先将IIS所有站点当中全部改为指定IIS要监听的IP地址,包括默认站点,例如全部改为61.156.31.1。再在网卡中加一个ip,也就是在TCP/ip高级属性中再加一个可用的ip,这样一块网卡就可以使用两个或更多个ip了,看似很简单的操作可能有很多人不知道,认为一块网卡只能设一个ip,呵呵。



接下来最关键的一步开始了,便是禁用IIS的套接字池(如果这一步没调好,便不会成功),在微软官方网站上有解释:



http://support.microsoft.com/kb/238131/zh-cn



概要



在下列情况下,您可能需要禁用套接字池:



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 服务。



好了,接下来设置IIS要监听的ip地址。到2003的CD下的 support/tools/Support.cab。解压出httpcfg.exe文件,COPY到



windows/system32/目录下,用法自己看帮助



命令行:



绑定到某IP: httpcfg set iplisten -i 61.156.31.1



即命令使用IIS的只监听指定的IP及端口



查看绑定: httpcfg query iplisten



删除绑定: httpcfg delete iplisten -i 61.156.31.1



IIS部分到此就设置好了,接下来设置Tomcat,当然或者你用Apache,Resin等也都可以,在Tomcat的配置文件Server.xml里找到







在后面添加上需要Tomcat监听的ip

下一页 (1/2)
回帖(2):
2楼:祝楼主快乐,大家一齐讨论!
1楼:学习了

全部回帖(2)»
最新回帖
收藏本帖
发新帖