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 程序,並在開啟和關閉 IIS 時看到 0.0.0.0:80 進入和退出使用。

關閉套接字池,事情又變糟了。

看起來 IIS 完全忽略了 ListenOnlyList。除非我將 ListenOnlyList 更改為 0.0.0.0 IIS 順利運行。我仔細檢查了 IIS 並確保 IP 匹配 - 它們確實匹配。它不在 All Unsigned 上,實際上是在 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 位址或連接埠上執行

相關內容