两个IP实现IIS和Apache公用80端口的设置方法
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 服务。珖氍舶夦鷏罾.{m?C鹠谠n{n簑傷钅洚{o镜汽铼纛{p?7??W柬?颪缗#镗q?J\r蘗畖s?宵髗9哕s蠯U羰I7}
好了,接下来设置IIS要监听的ip地址。到2003的CD下的 support/tools/Support.cab。解压出httpcfg.exe文件,COPY到
windows/system32/目录下,
我的资源中提供下载 http://www.jb51.net/softs/9541.html
用法自己看帮助
命令行:
绑定到某IP: httpcfg set iplisten -i 192.168.1.1 即命令使用IIS的只监听指定的IP及端口
查看绑定: httpcfg query iplisten
删除绑定: httpcfg delete iplisten -i 192.168.1.1
IIS部分到此就设置好了,接下来设置Apache监听ip和端口
listen 192.168.1.2:80
server 192.168.1.2:80
虚拟主机设置相应的ip和端口
好了接下来停止IIS,重启Apache
再重新启动服务器 启动iis 设置iis的端口80 ip地址为全部未分配即可
网上的另外一篇文章:
在windows 2003 Server 中同时安装Apache和IIS,两者只能正常启动一个,即Apache和IIS有冲突,原因在于IIS在默认的情况下会占用所有IP的80端口,当启动了IIS后,再启动Apache时,会出现一个错误提示框,提示内容为:"The requested operation has failed!" ,即“请求的操作已经失败”;若先启动Apache再启动IIS,系统提示“另一个程序正在使用此文件,进程无法访问”,微软的解决方案是:倘若 Apache和IIS要共存,且都需要使用80端口的话,需要网卡里绑多一个IP,具体做法如下,供网友参考。
*若Apache和IIS要共存,且都需要使用80端口,但只有一个IP的话,要使什么Apache Proxy,即apache代理,与本文方法不相同,请加以区分。
下面以两个IP分别设置两个环境为例说明,已知条件:218.87.96.160绑定了www.jb51.net域名,是一个PHP的站点,需要apache环境;218.87.96.161绑定了www.yuanma51.com域名,是个ASP站点,需要IIS环境。
一、Apache改成监听一个IP的端口。
在httpd.cfg 文件里。有 #Listen 12.34.56.78:80
写成如:Listen 218.87.96.160:80
二、下载微软 Support Tools工具里的 httpcfg.exe 程序
下载地址:
http://www.jb51.net/softs/9541.html
并复制到 c:\windows\system32 目录下。
三、IIS改成监听的指定IP (用httpcfg.exe程序来指定)
httpcfg.exe是用来指定IIS的只监听指定的IP及端口
添加绑定:httpcfg set iplisten -i 218.87.96.161
查看绑定:httpcfg query iplisten
删除绑定:httpcfg delete iplisten -i 218.87.96.161
在本例中运行: httpcfg set iplisten -i 218.87.96.161 即可使IIS只占用 218.87.96.161 IP地址 (若是要监听多个IP,分别指定几条就行了。)
四、重新启动服务器
查看两个WEB环境是否正常。用 netstat -an | find ":80" 命令就可以查看所有的80端口,最后测试两个IP的网站是否正常。