使用IIS ARR (Application Request Routing) 來做Exchange 2010的負載平衡器

初心者流程 - 使用IIS ARR (Application Request Routing) 來做Exchange 2010的負載平衡器

 

近來為了一個Exchange 2010的專案籌備中, 很多部件都已經測試完成了

唯獨要把CAS服務發放出去這一點上有點遲疑, 以往只要錢不在考慮的話用TMG發佈就可以了

可是由於TMG的壽命快要終結了 (還不知道但正在使用的朋友請參考微軟公告)

 

除了發佈服務, 由於有一台以上的CAS, 所以高可用性和負載平衡也在解決方案的考慮之上

搜尋了很多硬體負載平衡器的建議, 例如以下這篇很詳盡很值得參考

Load Balancing Exchange 2010 with Hardware Load balancer

但查詢過硬體價錢, 還有年服務費高得驚人, 而且為求達到高可用性, 還要一次購置兩台…

由於專案Budget所限, 不得已要繼續尋求廉價方案, 有一天突然發現微軟IIS團隊開發的ARR套件

Application Requesting Routing(ARR)有專屬的頁面

它最利害的地方就是能做到類似TMG的Reverse Proxy Routing功能, 配合IIS的Server Farm還能做到負載平衡效果

所以這次我想要做的就是做到客戶端先連接到IIS ARR服務器, 再由IIS ARR視乎情況把要求轉向Server Farm裡的CAS

 

以下只設定一台ARR, 如果要達到高可用性, 還必須以兩台ARR再配合Windows Network Load balancing才可以!

這個方案的優點是我們只需要兩台服務器, 就可以提供超高效能的高可用分流服務

相比硬體解決方案, 省下的機器費和年費絕對不能同日而語噢~~

 

Exchange 2010的設定就不說明了…

我先在DNS裡建立一條新的DNS Record, IP指向新的一台ARR服務器

image

 

這台IIS ARR使用Windows Server 2008 R2 SP1,

曾經試過使用Windows Server 2012上的IIS8來做, 可是總是做不出Server Farm

不知道是不是Web Farm Framework 1.1還不能支援, 為求降低難度, 我還是退一步使用2008 R2

 

安裝好IIS服務, 緊記Requestion Monitor, tracing, HTTP Redirection這些服務要手動加進去

image

再來下載Web Platform Installer 4.6

完成簡單的安裝, 在裡面搜尋Application Request Routing 2.5

image

會連攜下載相關部件

image

確認以下零件有裝嵌好

image

開啟IIS Manager, 會見到Server Farms, 右擊建立新的Server Farm

image

給它一個名稱(其實我不是純粹給OWA用的, 不知道為什麼那個時候就是想加上OWA…)

Online先給它勾選

image

再來加入幾台CAS服務器的Server Address, 而且勾上Online

這裡說Online並不是指機器有沒有開動

所以你要確認DNS解釋有做好, 這裡的Online往後可以調整

如果你把它弄成Offline, 負載平衡器就不會把新的要求轉向那台服務器

image

再來跑到新建立的Server Farm名稱, 點選右邊功能Caching

image

把Enable Disk Cache反選

如果ARR儲存Disk Cache, 使用者發出要求時ARR可以會把舊的Session ID發出去

當Exchange 2010發現Session過期就會發生錯誤

我看過Exchange 2013的文件, 這方面好像已經改進了, 大家可以看看再調整

做好後按右邊一個小小的Apply按鈕, 記得每個步驟都要噢

image

 

再來選Load Balance

image

 

選擇希望使用的負載平衡模式

image

 

退回去機器層面, 選擇URL Rewrite模組

image

在Condition視窗填入需要rewrite的url

例如我想, 當ARR接收到從http(s)://owa.justinlab.local這種要求時改變內容…

就像這樣填入, 按OK, 程式會問你要不要自動產生Rewrite Rules, 選YES

image

你會發現有兩條主要的Rule建立好

一條是HTTP的, 另一條是HTTPS的, 由於我的Exchange 2010只用HTTPS

所以HTTP那一組可以一整個Remove

再來雙擊ARR_your servr farm name打開內容

image

 

起始部份我就保留不變了

image

下面Condition部份按Add, Condition input填入{HTTP_HOST}

Pattern是你的DNS A Record

image

按OK, 結果會像這樣

image

最底部份把Server Farm改變成你剛設立的群組

最後把Stop Processing of subsequent rules勾選

image

 

再來這台AAR需要有Exchange 2010使用中的SSL證書,

到Exchange 2010把合用的證書匯出

image

 

回到ARR, 選Server Certificate

image

匯入剛剛的證書, 我比較懶惰…用的是Wildcard證書

image

 

再來到ARR的Default Web Site, 選Binding

假如沒有https的Binding就手動增加, 嵌入剛剛匯入的證書

image

現在只要把IIS重啟一次…

image

透過IE來測試, 網址連接到IIS ARR, 成功接入了~

image

如果到IIS ARR的Monitoring and Management

image

可以看到現在的狀態, 例如我正在接入ex01.justinlab.local

而且也可以見到歷史負載百份比, 在這裡你還可以控制服務器是Online還是Offline

初心攻略到此~你還可以用NLB把兩台ARR串起來達到高可用性哦~~這也是我下個目標

image