我正在尝试在 Windows Server 2008 上安装 Apache。安装结束时出现警告,提示我配置 Apache 监听的 IP 地址无法绑定。当我使用netstat -a -p tcp
要查看是否有任何进程正在侦听 IP 地址和端口,我看到几个条目……其中一个显示为正在侦听 0.0.0.0:80。以下是输出的部分列表。
Proto Local Address Foreign Address State
TCP 0.0.0.0:80 MYSERVERNAME:0 LISTENING
这看起来是 IIS7 在端口 80 上监听所有 IP 地址。令人困惑的是,我停止了 IIS7。所有网站都显示为已停止。我试过iisreset /STOP
以及使用 IIS7 管理器,但仍有一些东西在监听 0.0.0.0:80。我甚至确保每个网站都绑定到我想要为 Apache 释放的 IP 地址以外的另一个 IP 地址。还有其他人遇到过这种情况吗?
答案1
“敏捷绝地”让我走上了正确的道路。在搜索“禁用套接字池 IIS7”后,我遇到了一个很棒的文章给出了一些分步说明。我按照说明操作,果然成功了!我能够阻止 IIS7 绑定所有 IP 地址。基本上,它归结为以下命令(我从上面的文章中复制并粘贴了这些命令,以防文章被删除)。
- 添加或确保您的机器有两个 IP
- 打开命令提示符
- 类型
netsh
- 类型
http
- 类型
sho iplisten
。应为空白 - 类型
add iplisten ipaddress=192.168.0.90
(使用您希望 IIS7 绑定的公共 IP 地址)
您应该看到已成功添加 IP 地址
- 类型
sho iplisten
再次
列表中应该显示 192.168.0.90
类型
exit
退出 netsh類型
netstat -an
。看看列表中是否有 192.168.0.90:80。如果看到 0.0.0.0:80,请执行
iisreset
答案2
IIS 这样做是为了提高套接字池性能。我们有几个 APACHE/Windows 实例并排运行。我认为这在较新版本的 IIS 中不是问题。无论哪种方式,您都需要禁用套接字池:
对于 IIS6