IIS負載均衡ARR前端請求到本地服務器和後端處理服務器

       net web 使用IIS ARR(Application Request Route)技術實現web的高性能、高可靠、易擴展及負載均衡。

  一般應用場景見下圖所示,其中一臺服務器只做ARR服務器,接受客戶端發來的請求,根據配置的負載均衡算法,把請求轉發給真正的請求處理服務器,如下圖ServerFarm中的服務器B或C,由服務器B或服務器C來處理請求把處理結果返回給ARR服務器A,ARR服務器再把處理結果返回客戶端。

wKioL1eErq7gWZZ_AADjzcsrV6o001.jpg-wh_50

   我們的ARR服務器配置很好,只做ARR服務器有點浪費,爲了實現高併發訪問,我想ARR服務器做ARR服務的同時做應用程序服務器,即替ServerFarm中的服務器承擔工作量。網上搜索了很多資料說是無法實現,但經我摸索通過配置ARR 裏routing rules選項的url rewrite規則實現了我的需求。假定ARR服務器以80端口對外提供服務,ARR接收到80端口請求後,也會根據負載均衡規則轉發請求給自己的8080端口上的web應用進行處理請求或者其他服務的8080端口上的web應用。【注:該設置下,ARR服務器要保留一個80端口的站點用作對外訪問(該站點什麼內容都成,不會被訪問到,只提供80端口服務),在新建一個端口爲8080的站點作爲web應用】實現大致步驟

  1、ServerFarm中添加ARR服務器作爲負載均衡服務器,注意端口

wKiom1eEro-CA7oQAAIGUXg5PUo123.jpg-wh_50

  ServerFarm列表

wKiom1eErnWAjFLrAAGTinYmxIk111.jpg-wh_50

  2、url rewrite規則配置,ARR服務器指定端口的http請求會被轉發給ServerFarm中的服務器

wKioL1eErcrQmb6IAAM67eZs-oE877.jpg-wh_50

wKioL1eErgCTX15AAAIYzo_SkUY803.jpg-wh_50

 實現後部署圖如下圖示

wKiom1eErljB65qJAAGNUfiaKBg473.jpg-wh_50

  使用ARR後的一些問題及解決:

  1、使用ARR後,Session不要選擇在進程中存儲,需要選擇使用 StateServer方式或SqlServer存儲。如果堅持在進程中存儲的話,可用選擇使用客戶端親緣性(Client affinity),即客戶所有的請求都有相同的服務器進行響應,不會轉發到其它服務器,這犧牲了可靠性,當這臺服務器掛掉時,請求無法被轉發到其它服務器進行服務,結果就是客戶端請求無響應。 詳見:IIS應用程序池多工作進程設置及Session共享

  2、打開Caching,把Enable disk cache勾取消,點擊應用

 3、打開Proxy,將Time-out時間設置到200

 4、打開Routing Rules,將Enable SSL offloading前面的勾去掉


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章