如何利用 IIS7 的 ARR 模組實做 Reverse Proxy 機制
如何利用 IIS7 的 ARR 模組實做 Reverse Proxy 機制
安裝 Application Request Routing 1.0 模組
1. 使用 Microsoft Web Platform Installer 安裝 Application Request Routing 1.0 模組
2. 預設會連帶 URL Rewrite 一併安裝,以及其他必要的相關元件也會自動安裝
接著按下 I Accept 就會進行自動安裝了。
3. 若順利安裝,會得到以下畫面
開啟 IIS 管理員進行設定
1. 先檢視模組是否安裝正確,你先點選「伺服器節點」,再看看 IIS 區段中有沒有 Application Request Routing 與 URL Rewrite 模組。
2. 先對 Application Request Routing 進行設定,啟用 Proxy 功能,以及取消勾選 "Reverse rewrite host in response headers" 選項,然後再點選右邊的「套用」按鈕,其他預設值都可以不用修改。此步驟修正完成後必須重新啟動 IIS 才會生效。
3. 接著設定 URL Rewrite 模組,也是進入門檻最高的地方。首先我們先新增一組規則 ( Add Rules )
4. 在 Add rule with rewrite map 視窗設定一組 rewrite map 的名稱,你可以自己手動輸入,但名稱請不要使用空白或特殊符號!在這裡我們手動設定名稱為 ReverseProxyMap
5. 我們先新增幾筆我們要設定的 Reverse Proxy 對應表,這裡的 Rewrite Map 是一組很簡單的 Key/Value 值而已,我的目的是要用來對應 HTTP Request 的 HTTP_HOST 標頭值,並轉譯成另一個網址,以達到 Reverse Proxy 的目的。
6. 然後我們點選 Back To Rules 準備進行修改 URL Rewrite 的主要設定。
7. 接著在預設幫你建立的 Rewrite rule1 for ReverseProxyMap 這個 Rule 上按滑鼠右鍵進行編輯(Edit)
8. 這裡的預設設定大多不是我們要的,為了達到 Reverse Proxy 的功能,我們必須修改 Conditions 與 Action 的參數。
9. 修改 Conditions 參數,將預設的參數改掉,你只要將 Condition input 修改成 {ReverseProxyMap:{HTTP_HOST}} 即可。
10. 最後我們將 Action 區段的 Rewrite URL 修改成 http://{C:0}/{R:0},將 Append query string 勾選,以及將 Stop processing of subsequent rules 勾選,在點選「套用」就大功告成了!
---
最後,進行測試 http://192.168.2.253/ 所得到的網頁就是 http://www.miniasp.com/ 的網頁內容,也明確的符合 Reverse Proxy 的需求。
接著我自己新增一筆 Rewrite Map Entry,在 Original Value 的地方我設定成 testarr ( 這是一個不存在的網域,所以我有在我本機的 hosts 檔案設定這筆紀錄 ),在 New Value 的地方設定成另一個網站網址。
測試成功!以上圖為例,我連結到 http://testarr/ 所得到的網頁就是 http://www.yam.com/ 網頁的內容!
---
Reverse Proxy 只是 ARR ( Application Request Routing ) 模組的一個應用而已,實際上 ARR 能做的事情可多著呢,例如說組織 Server Farms、實做 HTTP Load Balance ( Layer 7 )、實做 External Cache,甚至於搭配 NLB 還可提供 High Availability (高可用性) 與 Scalability (高延展性) 的網站環境。
在以往要實做這些機制都要花許多錢購買硬體或高價產品,免費的產品也很多,不過就是要與非常極度複雜的設定檔對抗!現在我們有 ARR 這套免費的佛心級模組,再也不怕大流量的網站需求了。
有了 ARR 雖然一開始也沒有很好設定,但是當瞭解 ARR 的架構、觀念、設定之後,你將會發現擁有 GUI 是多麼美好的事情。
目录 返回
首页