共用方式為


反向 Proxy - 規則範本

作者 :Ruslan Yakushev

規則範本可用來為特定案例建立一或多個重寫規則的簡單方式。 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 網站的內容應用程式。

若要建立範例內容網站:

  1. 在下列資料夾中建立名為 「contentsite」 的資料夾:

    %SystemDrive%\inetpub\ folder.
    
  2. 建立名為 「contentsite」 的 IIS 網站,指向 下 %SystemDrive%\inetpub\ 對應的資料夾。 針對月臺使用埠 8081。
    您可以使用下列命令來建立網站:

    %windir%\System32\inetsrv\appcmd.exe add site /name:"contentsite" /bindings:http/*:8081: /physicalPath:"%SystemDrive%\inetpub\contentsite
    
  3. 在下列資料夾中建立名為 default.aspx 的檔案:

    %SystemDrive%\inetpub\contentsite
    
  4. 複製下列 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>
    
  5. 若要確定網站正常運作,請開啟 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

若要使用規則範本建立規則,請遵循下列步驟:

  1. 在 IIS 管理員中,選取左側樹狀檢視中的[預設網站]。
  2. 開啟 URL 重寫功能檢視。
  3. 在 URL 重寫功能檢視中,選取 [新增規則 () ...動作,然後選取 [反向 Proxy] 範本:
    [新增規則] 對話方塊的螢幕擷取畫面,其中顯示規則範本選項。反轉 Proxy 會反白顯示。
  4. 在 [新增反向 Proxy 規則] 對話方塊中,輸入下列專案:
    將轉送 HTTP 要求的伺服器名稱或 IP 位址: localhost:8081
    核取 [重寫 HTTP 回應中連結的功能變數名稱] 核取方塊,然後輸入:
    寄件者: localhost:8081
    To: localhost
    [新增反向 Proxy 規則] 對話方塊的螢幕擷取畫面。
  5. 按一下 [確定]。 將會建立輸入和輸出規則:
    I I S Manager 的螢幕擷取畫面,其中顯示 [U R L 重寫] 頁面。

測試反向 Proxy

若要測試規則範本所產生的重寫規則是否正確開啟網頁瀏覽器,並提出要求給 http://localhost/default.aspx 。 IIS「預設網站」將會收到此要求,並根據輸入重寫規則將它路由傳送至 http://localhost:8081/default.aspx 。 從 內容網站 傳回 HTTP 回應時,輸出重寫規則會修改 HTML 內的連結 URL,以將主機名稱從 localhost:8081 重寫為 localhost

瀏覽器視窗的螢幕擷取畫面,其中顯示反向 Proxy 測試頁面。

總結

在本逐步解說中,您已瞭解如何使用「反向 Proxy」規則範本來產生重寫規則,以在 IIS 中實作簡單的反向 Proxy 組態。 此規則範本可用來作為起點,以產生基底規則,稍後可調整或修改這些規則,以解決您為 Web 應用程式所需的特定路由和重寫需求。