在 App Service 使用 Reverse Proxy

  • 627
  • 0
  • 2021-03-21

過去在 IIS 上面可以安裝 Microsoft Application Request Routing (ARR) 來實做 Reverse Proxy ,但是如果我們需要將程式上雲的話,也就是放到 Azure 的 App Service 的話,如果也想要實做的話,也是可以透過安裝擴充套件來方便啟用這樣的功能。

前言

過去在 IIS 上面可以安裝 Microsoft Application Request Routing (ARR) 來實做 Reverse Proxy ,但是如果我們需要將程式上雲的話,也就是放到 Azure 的 App Service 的話,如果也想要實做的話,也是可以透過安裝擴充套件來方便啟用這樣的功能。

實做

首先開啟 App Service ,在左邊的功能選單裡面找到進階工具再點選執行來打開 App Service 的 Kudu 管理平台,這是微軟 App Service 內建的服務平台,包含很多功能,這次就是用到裡面的 Site extensions 功能來安裝擴充套件。

在 Kudu 介面上面依序點選 Site extensions -> Gallery 再搜尋 ReverseProxy 就可以找到今天的主角了,再點選 + 來安裝此套件。

Site extensions 目前僅在 Windows 作業系統的 App Service Plan 有此功能



安裝完之後就點選右上角的重起站台來啟用此擴充套件吧。重起之後就可以點選啟動按鈕來開啟設定頁面。


這邊我輸入底下範例,讓連到此網站都會直接轉到 Auzre Portal ,Save 之後他會將設定檔寫入到 Web.Config ,這時候連到這一個站台就都會被直接轉到 Azure Portal 了。

<rewrite>
  <rules>
    <rule name="RedirectUrl" stopProcessing="true">
      <match url="(.*)" />
      <action type="Redirect" url="https://portal.azure.com" />
    </rule>
  </rules>
</rewrite>

結論

要在 App Service 啟用 Reverse Proxy 就是這麼簡單,後面難的地方就是根據自己需求來建立 Rule 了,至於怎麼建立就可以參考擴充套件的範例或是微軟官方針對 ARR 的設定文件了。

參考資料

  1. ReverseProxySiteExtension
  2. Reverse Proxy with URL Rewrite v2 and Application Request Routing
  3. Kudu