このページの本文へ

FIXER cloud.config Tech Blog

Azure App Serviceをリバースプロキシとして利用する

2020年10月02日 11時00分更新

文● 神田 仁/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Azure App Serviceをリバースプロキシとして利用する #Azureリレー」を再編集したものです。

 こんにちは。cloud.config Divの神田です。

 今回は備忘録として、Azure App Serviceをリバースプロキシとして利用する方法を紹介します。

今回の目標

 今回はApp ServiceとFunctionsを作成し、App ServiceにアクセスしたらURL RewriteによりFunctionsに転送させる動作を実現させます。

App ServiceとFunctionsを作成する

 まずはApp ServiceとFunctionsを作成します。

 デフォルトの状態でそれぞれのアプリにアクセスすると以下の画面が表示されます。

App Serviceのデフォルトページ

Functionsのデフォルトページ

App Serviceのプロキシ機能を有効化する

 デフォルトではApp Serviceのプロキシ機能は無効化されているので、こちらを有効化します。

 まずはApp ServiceのデプロイセンターからFTPのダッシュボードにアクセスします。

 表示される認証情報をWinSCPに入力して接続します。

※App Serviceの[構成]>[全般設定]から[FTPの状態]を許可しておく必要があります(デフォルトではすべて許可になっているので問題ないはずです)。
※WinSCPはhttps://winscp.net/eng/download.phpよりダウンロード可能です。

FTPのデプロイセンター

WinSCPの接続画面

 接続に成功したらApp Serviceの/site配下に下記の内容のapplicationHost.xdtファイルを配置します。

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.webserver>
    <proxy enabled="true" xdt:transform="Insert">
    </proxy>
  </system.webserver>
<location path="<リバースプロキシとして利用するAppServiceのリソース名>" xdt:locator="Match(path)">
  <system.webserver>
    <rewrite xdt:transform="Insert">
    </rewrite>
  </system.webserver>
</location>
</configuration>

 applicationHost.xdtファイルを配置したら一度App Serviceを再起動します。

 これでApp Serviceのプロキシ機能の有効化が完了しました。

URL Rewriteの設定

 続いてURL Rewriteの設定を行ないます。

 Azureポータルから[App Service Editor(プレビュー)]にアクセスし、App Serviceの/site/wwwroot配下に下記内容のweb.configファイルを配置します。

<configuration>
  <system.webServer>
    <rules>
      <rule name="Proxy" stopProcessing="true">
        <match url="^(.*)" />
        <action type="Rewrite" url="<URL Rewriteでの転送先のURL>"/>
      </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

 以上でApp Serviceをリバースプロキシとして利用するために必要な設定が完了しました。

動作確認

 App ServiceのURL(リソース名.azurewebsites.net)にアクセスすると、App Serviceのデフォルトのページではなく、Functionsのデフォルトページが表示されます。

※アドレスバーのURLはApp Serviceのものですが、表示されるページはFunctionsのものとなっています

リバースプロキシを構成したあとのアクセス結果

最後に

 以上でApp Serviceにアクセスした際に、URL RewriteによりFunctionに転送させる動作を実現できました。今回の設定はApp Serviceで利用されているデプロイエンジンである「Kudu」の「Xdt Transform」という機能を利用したものです。

 下記のURLに他の利用法のサンプルが紹介されているので、気になる方は確認してみてください。

Xdt transform samples
https://github.com/projectkudu/kudu/wiki/Xdt-transform-samples

 神田 仁/FIXER

 cloud.config Division所属
 Azureを用いたインフラ構築を行っています。構築のノウハウやTerraformを用いた効率化の方法などを紹介していけたらいいな。

[転載元]
 Azure App Serviceをリバースプロキシとして利用する #Azureリレー

カテゴリートップへ