IIS負載均衡Application Request Route 安裝配置說明(ARR)


1 ARR介紹

ApplicationRequest Route(后面簡稱為ARR)是一個寄宿於IIS7(及以后的IIS版本)的一個基於代理的模塊,它可以通過判斷Http Headers,Server Variables以及負載均衡算法將HTTP的請求轉發到不同的處理服務器之上。ARR的用處如下:

  1. 增強應用的可用性與擴展性
  2. 更好的利用服務器資源
  3. 使得應用程序的部署更加方便,並且支持衛星部署管理與熱替換

ARR是基於URLRewrite Module的,它通過檢測客戶端發來的HTTP請求來做出請求路由的決定。

 

 

 

 

參考鏈接:

https://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA==&mid=2654067559&idx=2&sn=467c3d92089124480fdb62584857e807&scene=21#wechat_redirect

   文章是連載,文末有前面幾章的鏈接。文章中講的2.5版本,目前最新版是3.0,本文也用3.0安裝搭建ARR環境;

2   安裝

官網下載地址:

https://www.iis.net/downloads/microsoft/application-request-routing

官網是用Web平台安裝程序,按照提示安裝即可。

 

腳本之家下載地址:

https://www.jb51.net/softs/629246.html

下載后有3個依賴項和ARR需要安裝。

以下是腳本之家下載的安裝說明

2.1 停止服務

   打開cmd命令行,分別執行net stop was /y和net stop wmsvc /y,一般第二個沒有開啟。

2.2 手動安裝ARR及其依賴項

  1. webfarm_v1.1_amd64_en_us.msi
  2. ExternalDiskCache_amd64_en-US.msi
  3. rewrite_amd64_en-US.msi
  4. requestRouter_amd64.msi

按照提示安裝即可。

2.3 啟動服務

打開cmd命令行,分別執行net start was和net start wmsvc  

3  創建Server Farm

ApplicationRequest Route模塊的使用是和Server Farm模塊結合在一起的,只有先創建了Server Farm,才能開始使用Application Request Route進行HTTP請求路由。ServerFarm簡而言之就是:對一個或者多個服務器的邏輯分組,便於管理,HTTP請求路由等。

3.1 新建ServerFarm

打開IIS管理器,在右側可以看到Server Farm項,右鍵,點擊Create Server Farm,輸入自定義Farm名稱;online:勾選即為開啟Server Farm。

 

 

 

 

 

 

 

3.2 添加應用服務地址

 點擊“下一步”,添加應用服務地址

 Server address:填寫應用服務的IP(如:192.168.1.112)或域名(www.XXXXX.com

  Advanced setting:點擊打開配置項,點擊applicationrequest routing前的加號,設置服務參數

 

 

 

 

 

 

 如果http端口不是默認端口80,修改httpPort項(如:8000),修改后點擊“Add”,一定要先修改端口,再點“Add”;weight為權重值,用於負載均衡運算分發,暫時默認即可。

 

 

 

 添加后,在服務列表中可以看到添加的服務,點擊“完成”:

 

 

 

 點擊“完成”后,彈出是否創建於此Server Farm關聯的URL 重寫規則,點擊“是”。

 

 

 

  完成后可以在IIS中看到新建的Server Farm,可以添加、移除、下線、上線應用服務。

 

 

 

 

服務器運行狀況監控

     ARR可以配置通過發送GET請求來檢測ServerFarm中的服務器是狀態良好的。這個原理和我們時不時的ping一個電腦,來判斷其是否還可以連接一樣。 

我們可以在在每個站點中放置一個文件(任意IIS允許請求的文件,例如txt,html,aspx頁面等,不能是.config等文件,例如:http://localhost/a.txt,(因接收請求的是ARR服務器本地,所以用localhost即可)在文本中寫一段文本,如:AAA,

打開IIS管理器,點擊左側Server Farm=》ARREIM,點擊右側“Health Test”,打開健康測試模塊:

 

 

 

配置如下:

 

 

 

 ARR會每隔30秒(Interval)就去請求一次,然后比較請求的響應是否是“AAA”,從而判斷服務器是否狀態良好。

點擊 Verify URL Test,可以測試當前在線服務器的狀態,如果正常Result、Details都顯示Pass;如果異常,Result顯示Fail,Details顯示異常信息。

 

 

 

 

5  選擇負載均衡算法

打開“Load Balance”

 

 

 

 

 

 

 Weighted round robin:加權循環,根據傳入請求的數量及其標准化權重分配流量。每個服務器都可以接收相同的請求分發或自定義分發。

Server variable hash:服務器變量哈希,根據服務器變量的hash來分配請求,這里面的服務器變量包括Cookie, URL,頭信息等。

Query string hash:查詢字符串哈希,根據URL查詢字符串的hash來分配請求,如果查詢字符串包含多個參數(?name=jesse&location=sh),則是用整個查詢字符串的hash來作判斷。

Request hash:請求哈希,根據服務器變量或者是URL的hash來分配請求,比如說服務器變量是QUERY_STRING,那么hash的值就是query string中對應的那個值。

默認Weighted round robin:加權循環,按照權重設置分發請求,如:現有兩台應用服務器B、C,B權重100,C權重100,則兩台應用服務器平均分發;B權重100,C權重300,則1/4請求分發給B,3/4請求分發給C。

6  監控和管理

在Server Farm頁,打開“Monitoring and Management”,可以查看各應用服務的健康狀態、請求分布及數量、請求響應時間、請求大小、權重等信息。

 

 

 

 

 

 

 選中一個應用服務,點擊右側按鈕或者右鍵,可以重置統計信息、停止服務、禁止連接等

 

 

 

 

7  負載均衡器也做應用服務器

按照上面服務器設置,網絡拓撲圖如下圖:

 

 

 有時一台服務器只當做負載均衡器,ARR服務占用系統資源很少,設備利用率較低,浪費資源。我們可以將負載均衡服務器也作為一台應用服務器運行。改在為下圖結構:

 

 

 

7.1 添加ARR本地應用服務

添加ARR本地應用服務時,IP填寫127.0.0.1,端口設置為8000,

 

 

 

 

7.2 修改Server Farm對應的URL重寫規則

打開IIS管理器,在主頁IIS下找到“URL 重寫”,雙擊打開

 

 

 

 打開URL重寫可以看到Server Farm對應的重寫規則,選中,右鍵,條件=》添加,

 

 

 

 

 

 “條件輸入”框中輸入{SERVER_PORT},“檢查輸入字符串是否”選擇“與模式匹配”,“模式”中輸入80,點“確定”

 

7.3 ARR服務器多應用服務站點

如果ARR服務器本地需要部署多個應用服務站點,需要在C:\Windows\System32\drivers\etc\hosts文件末尾添加映射,如:

127.0.0.1 site1

127.0.0.1 site2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM