Application Request Routing (ARR) 搭配 Web Farm Framework (WFF) 是個很好的產品組合,且整個 Windows Azure 雲端平台也都是用這些免費套件來實現網站之間的負載平衡,其穩定度與效能不在話下,但在台灣卻鮮少聽到有公司採用 ARR 與 WFF 來實現網站負載平衡,連分享文章都看不到幾篇,實在有點可惜。前陣子幫客戶裝了 ARR 與 WFF 來實現網站負載平衡,不過這次安裝到 IIS8 的時候有遇到一些問題,因此把這些該注意的事項都整理下來,以減少下次設定時犯錯的機會。
大致 Web Farm 主機配置
- ARR/WFF 主機 (獨立主機或VM)
- Web 主機 (共 1 ~ 8 台不等)
- Web 主機之間的檔案同步採用 DFS (分散式檔案系統) 架構
- Session 主機 ( 可使用 ASP.NET State Service 或 SQL Server 作為儲存地點 )
ARR/WFF 主機設定
- 只能有一個 Default Web Site 站台 (因為設定了全站的 Rewrite 規則)
- 若要安裝 SSL 憑證,需先匯入憑證,並將該憑證 繫結 (Binding) 於 Default Web Site 站台
- 若要讓連接的使用者在一段時間內同時造訪同一台 Web 主機,可以啟用 Client Affinity 設定
- 千萬不要勾選 Enable disk cache (預設是勾選的),這會讓你的網站出現莫名的 HTTP 502.3 錯誤
( 註: 此問題我已經回報給微軟,問題也可以 100% 重現,只是至今無解! )
Web 主機設定
- 記得在【IP 地址與網域限制】模組的「編輯功能設定」勾選 啟用 Proxy 模式 (一定要)
- 在【IP 地址與網域限制】加入 ARR 主機的 IP 位址 (提高網站安全性)
心得分享
像我用 ARR 搭配 WFF 已經好多年了,無論是效能或品質都很不錯,也可以乘載極大的流量,但每次看到客戶寧願選擇貴森森的硬體負載平衡器,然後抱怨每年的保固費用太高;也不願意採用微軟推出的軟體負載平衡器產品 (而且還是免費的),都覺得替他們的 小朋友 (鈔票的意思) 感到可惜。
這個想法出現過好幾次,我想,要是那些有購買硬體負載平衡器的公司找我們當顧問,由我們來協助他們導入這套免費的軟體負載平衡器方案 (ARR + WFF + URL Rewrite),每年的顧問費就收硬體負載平衡器的年度保固費用就夠了,這不知道該有多好! ^_^
相關連結