反向 Proxy - 規則範本
規則範本可用來為特定案例建立一或多個重寫規則的簡單方式。 URL 重寫模組 2 包含一些常見使用案例的規則範本。 除了該 URL 重寫模組 UI 之外,還提供插入自訂規則範本的架構。 本逐步解說將引導您瞭解如何使用 URL 重寫模組隨附的「反向 Proxy」規則範本。 若要深入瞭解如何使用 IIS URL 重寫模組設定反向 Proxy 和 IIS 應用程式要求路由,請參閱使用 URL 重寫 v2 和應用程式要求路由的反向 Proxy。
必要條件
本逐步解說需要下列必要條件:
- 已啟用 ASP.NET 角色服務的 IIS 7 或更新版本;
- 已安裝 URL 重寫模組 2.0;
- 已安裝 IIS 應用程式要求路由。
建立範例網站
為了簡單起見,您將在本逐步解說中使用的反向 Proxy 案例將會在單一伺服器上實作,而 IIS「預設網站」做為反向 Proxy 網站,以及裝載于相同伺服器上的個別 IIS 網站的內容應用程式。
若要建立範例內容網站:
在下列資料夾中建立名為 「contentsite」 的資料夾:
%SystemDrive%\inetpub\ folder.
建立名為 「contentsite」 的 IIS 網站,指向 下
%SystemDrive%\inetpub\
對應的資料夾。 針對月臺使用埠 8081。
您可以使用下列命令來建立網站:%windir%\System32\inetsrv\appcmd.exe add site /name:"contentsite" /bindings:http/*:8081: /physicalPath:"%SystemDrive%\inetpub\contentsite
在下列資料夾中建立名為 default.aspx 的檔案:
%SystemDrive%\inetpub\contentsite
複製下列 ASP.NET 標記,將它貼到檔案中,並將檔案儲存為 default.aspx:
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Reverse Proxy Test Application</title> </head> <body> <h1>Reverse Proxy Test Page</h1> <p>Requested URL path is <%= Request.ServerVariables["SCRIPT_NAME"] %></p> <p><a href="http://<%= Request.ServerVariables["HTTP_HOST"] + Request.ServerVariables["SCRIPT_NAME"] %>">Here</a> is the link to this page.</p> </body> </html>
若要確定網站正常運作,請開啟 Web 流覽並要求下列 URL:
http://localhost:8081/default.aspx
使用反向 Proxy 範本產生輸入和輸出規則
「反向 Proxy」規則範本可用來產生用來將 HTTP 要求 Proxy 至另一部伺服器的輸入重寫規則。 您也可以選擇性地建立輸出重寫規則,以修正 HTML 回應內連結 URL 中的主機名稱。 在本逐步解說中所述的範例案例中,Proxy 伺服器主機名稱是 localhost ,而內容伺服器的主機名稱是 localhost:8081。 內容伺服器上的 Web 應用程式會在 HTML 回應中產生連結,其使用內部主機名稱,例如 。 http://localhost:8081/default.aspx
輸出規則會修正此連結,以使用 Proxy 的主機名稱,例如 http://localhost/default.aspx
。
若要使用規則範本建立規則,請遵循下列步驟:
- 在 IIS 管理員中,選取左側樹狀檢視中的[預設網站]。
- 開啟 URL 重寫功能檢視。
- 在 URL 重寫功能檢視中,選取 [新增規則 () ...動作,然後選取 [反向 Proxy] 範本:
- 在 [新增反向 Proxy 規則] 對話方塊中,輸入下列專案:
將轉送 HTTP 要求的伺服器名稱或 IP 位址: localhost:8081
核取 [重寫 HTTP 回應中連結的功能變數名稱] 核取方塊,然後輸入:
寄件者: localhost:8081
To: localhost
- 按一下 [確定]。 將會建立輸入和輸出規則:
測試反向 Proxy
若要測試規則範本所產生的重寫規則是否正確開啟網頁瀏覽器,並提出要求給 http://localhost/default.aspx
。 IIS「預設網站」將會收到此要求,並根據輸入重寫規則將它路由傳送至 http://localhost:8081/default.aspx
。 從 內容網站 傳回 HTTP 回應時,輸出重寫規則會修改 HTML 內的連結 URL,以將主機名稱從 localhost:8081 重寫為 localhost:
總結
在本逐步解說中,您已瞭解如何使用「反向 Proxy」規則範本來產生重寫規則,以在 IIS 中實作簡單的反向 Proxy 組態。 此規則範本可用來作為起點,以產生基底規則,稍後可調整或修改這些規則,以解決您為 Web 應用程式所需的特定路由和重寫需求。