Windows
為什麼我的一些客戶會在短時間內失去 HTTP 連接?
我在位於 Sonicwall 防火牆後面的英特爾伺服器硬體上的 Windows Core 2008 R2 伺服器上虛擬化的 Server 2008 R2 上執行 IIS 7.5。
幾個月來,我們有少量客戶(可能每週一個)聯繫我們說他們無法訪問該網站。發生這種情況時,我立即開始診斷問題,這就是我發現的:
- 我可以訪問網站。
- 我們在其他地點的支持人員可以訪問該網站。
- 大概(因為我們沒有收到他們的消息),其他客戶可以訪問該網站。
- 客戶可以對伺服器執行 ping 和跟踪。
- 客戶無法訪問同一伺服器上共享相同 IP 地址的其他網站。
- 客戶可以訪問同一伺服器上使用不同 IP 地址的其他網站。
- iisreset 不能解決問題。
- 重置客戶的路由器並不能解決問題。
- 刷新防火牆的 ARP 記憶體並不能解決問題。
- 更改客戶的瀏覽器和/或重新啟動他的機器並不能解決問題。
- 切換到客戶路由器後面的另一台電腦並不能解決問題。
- 在 15 - 30 分鐘內,問題以某種方式神奇地自行解決,客戶可以再次訪問該網站。
- 當它失敗時,客戶會看到一條超時消息,並且 IIS 日誌根本沒有顯示請求記錄。
其他注意事項:
- 似乎沒有關於此問題影響哪些客戶的模式。
- 我們沒有使用負載平衡。
- 除了防火牆,IIS 前面沒有其他安全軟體/硬體。
- IIS VM 具有所有最新的 Windows 更新。
- 伺服器核心安裝包含所有最新的 Windows 更新。
- Sonicwall 正在執行最新的韌體。
我懷疑可能是問題所在:
- 如果客戶的瀏覽器錯誤地解析了可能導致上述所有問題的網站的 DNS。下次發生這種情況時,我將使用 Fiddler 來驗證瀏覽器嘗試連接的 IP 地址。不知道為什麼 ping 能夠從命令行正確解析它。
- 也許 Sonicwall 以某種方式阻止了連接。如果是這種情況,它只會阻止特定的源 IP + 目標 IP + 協議,並且僅阻止 15 - 30 分鐘。我沒有許可/啟動任何 Sonicwall 的高級過濾服務。我可以通過在問題發生時重置 Sonicwall 來測試這個理論,考慮到其他使用者同時訪問伺服器,這有點可怕。
- Server Core(主機 O/S)和 Server 2008 R2(來賓 O/S)之間的虛擬網路連接可能會在一段時間內阻塞連接。不知道如何測試/診斷這個。
- 主機上的 NIC 驅動程序可能有一些奇怪的問題?也不知道如何測試這個。
這不是一個非常令人滿意的解決方案,但我最終從上面描述的虛擬化解決方案轉移到了獨立伺服器,到目前為止問題已經消失。我不知道是不是以前主機的網卡、虛擬機和主機之間的虛擬網路適配器有問題,還是完全其他問題,但目前一切執行順利。如果問題再次出現,我會更新這個問題/答案。