IIS 和 Apache 同一服务器

IIS 和 Apache 同一服务器

单个服务器共享我们的主要网站(由 Apache 托管)和 Exchange OWA 站点(由 IIS 托管)。

这些网站有 2 个不同的公网 IP,并且有 2 个不同的 URL。但是,IIS 坚持要获取分配给服务器的所有静态 IP。

我做了一些研究并找到了这个链接:http://support.microsoft.com/kb/892847

我使用的是 IIS 6.0。我继续禁用套接字池,然后重新启动。使用 httpcfg 将 IIS 分配给 2 个内部 IP(xxx11:80、xxx11:443),现在 IIS 站点表现得好像端口正在使用中,即使 Apache 也已关闭。我仔细检查了 apache 配置,并在必要时指定了 .12 IP。

我查看了我的 ListenOnlyList,它看起来是正确的。它有 2 个条目和正确的端口。

为了好玩,我重新启用了套接字池,一切正常。我可以使用 Active Ports 程序,并看到 0.0.0.0:80 在打开和关闭 IIS 时进入和退出使用。

关闭套接字池后,情况又变糟了。

看起来 IIS 完全忽略了 ListenOnlyList。但当我将 ListenOnlyList 更改为 0.0.0.0 时,IIS 运行顺畅。我仔细检查了 IIS,确保 IP 匹配 - 确实匹配。它不在“所有未分配”上,而是在 xxx11 上。太疯狂了。

有任何想法吗?

答案1

禁用套接字池在 IIS6 上不起作用。相反,您必须更改提到的注册表项,然后执行 httpcfg 操作。

假设您更改了注册表项,运行 httpcfg query iplisten 的输出是什么?

答案2

您是否确保在 IIS 的网站属性中仅选择 IIS 服务器的 IP 地址?您可能选择了“(所有未分配)”。我不确定这是否能解决您的问题,但值得检查一下。

答案3

我写了一篇博客文章,详细介绍了在 httpcfg 中实现此功能的步骤:

http://www.diaryofaninja.com/blog/2012/06/21/forget-what-your-mother-told-you-iis-and-apache-can-be-friends

基本上:

  • 手动为 IIS 创建一些 IP 地址绑定(因此不会创建“全部捕获”场景)
  • 设置 Apache 在不在上述绑定中的 IP 地址或端口上运行

相关内容