intra-mart Accel Platform セットアップガイド 第29版 2019-08-01

4.4.2. Internet Information Services(IIS)

4.4.2.1. 前提条件

  • 以降の手順では Windows Server 2012 のキャプチャ画像を使用しますが、上記のどのバージョンの Windows Server でも同じ手順でセットアップできます。
  • ベースURLの設定
    Internet Information Services(IIS) を使用する場合ベースURLの設定が必要です。

コラム

  • ベースURLには <httpまたはhttps>://<IISのIPアドレスまたはドメイン名>:<IISのポート番号>/<コンテキストパス> を設定します。
  • 構築するサーバ環境に応じて適切に設定してください。
  • ベースURLについての詳細は、ベースURLを参照してください。
  • Internet Information Services(IIS) を稼働させるには「Application Request Routing」が必要です。
    下記「Application Request Routing」のホームページよりインストーラをダウンロードし、以下の手順でセットアップを行ってください。

コラム

URL(2014年8月現在)

4.4.2.1.1. Application Request Routing のセットアップ

  1. ダウンロードした <ARRv3_0.exe> を実行します。

  2. 「インストール」をクリックします。

    ../../../_images/iis_arr_30beta_1.png
  3. 前提条件、ライセンス条項を確認後、「同意する」をクリックします。

    ../../../_images/iis_arr_30beta_2.png
  4. 「完了」をクリックします。

    ../../../_images/iis_arr_30beta_3.png
  5. 「終了」をクリックします。

    ../../../_images/iis_arr_30beta_4.png

    以上で Application Request Routing のセットアップは終了です。

4.4.2.2. 設定

  • Resin へ接続するための設定を行います。
    以降の手順では下記の環境を想定した手順を記載します。
    intra-mart Accel Platform のコンテキストパス imart
    IIS のルート ディレクトリ C:\inetpub\wwwroot
    静的ファイルの展開フォルダ C:\imart
    Web Application ServerのIPアドレス 192.168.1.1
    Web Application Serverのポート番号 8080
    1. Internet Information Services(IIS) と Resin を接続するための設定ファイル <web.config> を <C:/inetpub/wwwroot> 直下に作成します。

      <?xml version="1.0" encoding="UTF-8"?>
      <configuration>
        <system.web>
          <httpRuntime maxRequestLength="102400" requestPathInvalidCharacters="" />
          <customErrors mode="Off" />
        </system.web>
        <system.webServer>
          <security>
            <requestFiltering>
              <requestLimits maxAllowedContentLength="104857600" />
            </requestFiltering>
          </security>
          <httpErrors errorMode="Detailed" />
          <rewrite>
            <rules>
              <clear />
              <rule name="ReverseProxyInboundStatic" stopProcessing="true">
                <match url="^imart/(?!reverse_proxy/)(.*\.gif|.*\.png|.*\.jpg|.*\.css|.*\.js|.*\.swf|.*\.ico|.*\.json|.*\.jar|.*\.xml|.*\.yaml|.*\.txt|.*\.html|.*\.htm)$" />
                <action type="None" />
              </rule>
              <rule name="ReverseProxyInboundDynamic" stopProcessing="true">
                <match url="^imart/(.*)" />
                <action type="Rewrite" url="http://192.168.1.1:8080/imart/{R:1}" />
              </rule>
            </rules>
          </rewrite>
        </system.webServer>
      </configuration>
      

      コラム

      web.config とは Internet Information Services(IIS) の構成ファイルです。

      注意

      <web.config> ファイルは IM-Juggling 上では編集できません。
    2. サーバ環境に合わせて web.config 内の下記の要素等を適宜変更します。
      • maxRequestLength, maxAllowedContentLength 属性

        • アップロードのファイルサイズの制限を変更する場合には、maxRequestLength, maxAllowedContentLength 属性の設定を変更してください。(上記の例では 100 MB)

      コラム

      web.config の詳細は以下のリファレンスを参照してください。
    3. インターネット インフォメーション サービス (IIS) マネージャー より「IIS サーバ(ここでは WIN-QDQ41RVOU80)」「Application Request Routing Cache」「機能を開く」の順にクリックします。
      ../../../_images/iis_arr_config_1.png
    4. 「Server Proxy Settings...」をクリックし、「Application Request Routing」画面を表示します。
      ../../../_images/iis_arr_config_2.png
    5. 「Enable Proxy」をチェックし、「Time-out (seconds)」にタイムアウト値を秒単位で設定します。
      統合Windows認証機能を利用していない場合、「Keep alive」のチェックを外します。
      さらに、「適用」をクリックし、設定を反映します。
      ../../../_images/iis_arr_config_3.png

      注意

      統合Windows認証機能を利用している場合「Keep alive」は必ず有効にしてください。

      コラム

      「Keep alive」をオフにすることで、Bad Gateway エラーを減らすことができます。
      ただし、統合Windows認証機能を利用している場合には「Keep alive」はオフにせず必ず有効にしてください。

      コラム

      「Time-out (seconds)」には Application Request Routing が Resin への接続を切断するまでのタイムアウト時間を設定します。
      テナント環境セットアップを完了するのに十分に大きい値を設定してください。
      ここでは例として 1200 秒を設定しています。
    6. 「変更内容は正常に保存されました。」と表示されていることを確認してください。
      ../../../_images/iis_arr_config_4.png
    7. 続いて、静的ファイル用の仮想ディレクトリを作成します。
      左ペインの「Default Web Site」のサブメニューより「仮想ディレクトリの追加...」をクリックします。
      ../../../_images/iis_arr_virtualsite_1.png
    8. 新規ウィンドウ内で「エイリアス(A)」、「物理パス(P)」を次のように設定し、「OK」をクリックします。

      エイリアス imart
      物理パス C:\imart
      ../../../_images/iis_arr_virtualsite_2.png
    9. 「imart」ディレクトリが作成されていることを確認してください。

      ../../../_images/iis_arr_virtualsite_3.png

4.4.2.3. OAuth認証モジュール、または統合Windows認証モジュールのリダイレクト機能を利用する場合の追加設定

IIS環境下でOAuth認証モジュール、または統合Windows認証モジュールのリダイレクト機能を動かすためには、追加で以下の設定を行う必要があります。
手順では下記の環境を想定して記載します。
intra-mart Accel Platform のコンテキストパス imart
IIS のルート ディレクトリ C:\inetpub\wwwroot
静的ファイルの展開フォルダ C:\imart
Web Application ServerのIPアドレス 192.168.1.1
Web Application Serverのポート番号 8080
ベースURL http://192.168.1.1/imart
  1. インターネット インフォメーション サービス (IIS) マネージャー より「Application Request Routing Cache」>「Server Proxy Settings...」の順にクリックし、「Application Request Routing」画面を表示します。

  2. 「Reverse rewrite host in response headers」チェックボックスを off にして、「適用」をクリックします。

    ../../../_images/iis_arr_config_5.png
  3. <C:/inetpub/wwwroot/web.config>に以下の設定を追加します。

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <rewrite>
          ...
          <outboundRules>
            <rule name="RewriteLocationHeader" preCondition="Redirect Response">
              <match serverVariable="RESPONSE_Location" pattern="^http://192.168.1.1:8080/imart/(.*)" />
              <action type="Rewrite" value="http://192.168.1.1/imart/{R:1}" />
            </rule>
            <preConditions>
              <preCondition name="Redirect Response">
                <add input="{RESPONSE_STATUS}" pattern="3\d\d" />
              </preCondition>
            </preConditions>
          </outboundRules>
        </rewrite>
      </system.webServer>
    </configuration>
    
  4. インターネット インフォメーション サービス (IIS) マネージャー より「Default Web Site」「URL 書き換え」「機能を開く」の順にクリックします。

    ../../../_images/iis_arr_virtualsite_4.png
  5. 「HTTP 応答のヘッダーまたはコンテンツに適用される送信規則」に下図のように追加されていることを確認します。

    ../../../_images/iis_arr_virtualsite_5.png

4.4.2.4. アクセスログの編集

リバース Proxy の場合、Resin が出力する access.log のソース IP がすべて IIS の IP に変わります。
回避するためには access.log の出力内容を編集します。
  1. <%RESIN_HOME%/conf/resin.xml> ファイルを開きます。

  2. <host id=”” root-directory=”.”> ディレクティブ内に以下の設定を追加して Resin の再起動を行ってください。

    <access-log path='log/access.log'>
      <rollover-period>1D</rollover-period>
      <format>%{X-Forwarded-For}i %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"</format>
    </access-log>
    

    コラム

    access.log についての詳細な設定内容については「Resin Documentation 」を参照してください。