intra-mart Accel Platform 設定ファイルリファレンス 第34版 2024-04-01

リバースプロキシの設定

概要

リバースプロキシの動作設定を行います。

モジュール リバースプロキシ
フォーマットファイル(xsd) WEB-INF/schema/im-reverse-proxy-path-config.xsd
設定場所 WEB-INF/conf/im-reverse-proxy-path-config/{任意のファイル名}.xml

<?xml version="1.0" encoding="UTF-8"?>
<im-reverse-proxy-path-config
    xmlns="http://www.intra-mart.jp/reverse-proxy/config/im-reverse-proxy-path-config"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.intra-mart.jp/reverse-proxy/config/im-reverse-proxy-path-config ../../schema/im-reverse-proxy-path-config.xsd">

  <reverse-proxy handler="jp.co.intra_mart.foundation.reverse_proxy.handler.DefaultReverseProxyHandler">
    <authz action="execute" uri="service://intra-mart.jp/public-resources/welcome-to-intramart" />
    <proxy-pass default-charset="UTF-8" path="/example/" timeout-seconds="30" url="https://www.example.com/" />
    <proxy-pass-reverse path="/example/" url="https://www.example.com/" />
    <request-headers>
      <set header="x-my-header" value="my-value" />
      <append header="x-my-header" value="my-value" />
      <unset header="x-my-header" where-value="my-value" />
    </request-headers>
    <response-headers>
      <set header="x-my-header" value="my-value" />
      <append header="x-my-header" value="my-value" />
      <unset header="x-my-header" where-value="my-value" />
    </response-headers>
    <substitutes>
      <substitute content-type="text/html" regexp="http://www\.example\.com/" where-path="/example/.*">
        <replacement>${im-reverse-proxy-base-url}/example/</replacement>
      </substitute>
    </substitutes>
    <any-config />
  </reverse-proxy>

</im-reverse-proxy-path-config>

リファレンス

リバースプロキシの設定

タグ名 reverse-proxy
リバースプロキシを設定します。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy handler="jp.co.intra_mart.foundation.reverse_proxy.handler.DefaultReverseProxyHandler"></reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定
設定値・設定する内容 リバースプロキシを設定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ im-reverse-proxy-path-config

【属性】

属性名 説明 必須 デフォルト値
handler
リバースプロキシを実行するクラス名を設定します。標準のリバースプロキシハンドラでは実現不可能な処理等を行う際に、必要に応じてハンドラを実装し、クラス名を設定してください。

× jp.co.intra_mart.foundation.reverse_proxy.handler.DefaultReverseProxyHandler

認可設定

タグ名 authz
リバースプロキシするURLに対する認可を設定します。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <authz action="execute" uri="service://intra-mart.jp/public-resources/welcome-to-intramart" />
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目
複数設定 ×
設定値・設定する内容 リバースプロキシするURLに対する認可を設定します。設定した認可に許可されたユーザのみがこのリバースプロキシのURLにアクセスできます。
単位・型 なし
省略時のデフォルト値 なし
親タグ reverse-proxy

【属性】

属性名 説明 必須 デフォルト値
action
認可アクションを設定します。

なし
uri
認可リソースURIを設定します。

なし

リバースプロキシ対象のURLの設定

タグ名 proxy-pass
リバースプロキシを行う対象のURLを設定します。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <proxy-pass default-charset="UTF-8" path="/example/" timeout-seconds="30" url="https://www.example.com/" />
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目
複数設定 ×
設定値・設定する内容 リバースプロキシを行う対象のURLを設定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ reverse-proxy

【属性】

属性名 説明 必須 デフォルト値
default-charset
プロキシ対象のURLの文字コードを設定します。デフォルトのリバースプロキシハンドラは、レスポンスの文字コードを自動判別できなかった場合、ここで指定された設定値を用います。

× UTF-8
path
プロキシ対象のURLの文字コードを設定します。例えばこの設定値に「/example/」を指定した場合、「http://<HOST>:<PORT>/<CONTEXT_PATH>/reverse_proxy/example/」がリバースプロキシのURLです。

なし
timeout-seconds
プロキシを行う際のタイムアウト値を設定します。(単位:秒)

× 30
url
プロキシ対象のURLを設定します。

なし

リバースプロキシ対象のリダイレクトURLの設定

タグ名 proxy-pass-reverse
リバースプロキシ対象のリダイレクトレスポンスのURLの設定

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <proxy-pass-reverse path="/example/" url="https://www.example.com/" />
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定
設定値・設定する内容 リバースプロキシ対象のリダイレクトレスポンスのURLを設定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ reverse-proxy

【属性】

属性名 説明 必須 デフォルト値
path
リダイレクトレスポンスの変換対象のURLを、この設定値のパスに変換します。

なし
url
リダイレクトレスポンスの変換対象のURLを設定します。

なし

リクエストヘッダの設定

タグ名 request-headers
リクエストヘッダに関する設定を行います。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <request-headers>
      ....
    </request-headers>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定 ×
設定値・設定する内容 リクエストヘッダに関する設定を指定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ reverse-proxy

リクエストヘッダの変更設定

タグ名 set
リクエストヘッダを変更するための設定を行います。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <request-headers>
      <set header="x-my-header" value="my-value" />
    </request-headers>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定
設定値・設定する内容
リクエストヘッダを変更するための設定を指定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ request-headers

【属性】

属性名 説明 必須 デフォルト値
header
変更するリクエストヘッダ名を設定します。

なし
value
新しいリクエストヘッダ値を設定します。

なし

リクエストヘッダの追加設定

タグ名 append
リクエストヘッダを追加するための設定を行います。
同名のリクエストヘッダ名が存在する場合、リストに追加されます。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <request-headers>
      <append header="x-my-header" value="my-value" />
    </request-headers>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定
設定値・設定する内容
リクエストヘッダを追加するための設定を指定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ request-headers

【属性】

属性名 説明 必須 デフォルト値
header
追加するリクエストヘッダ名を設定します。

なし
value
追加するリクエストヘッダ値を設定します。

なし

リクエストヘッダの削除設定

タグ名 unset
リクエストヘッダを削除するための設定を行います。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <request-headers>
      <unset header="x-my-header" where-value="my-value" />
    </request-headers>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定
設定値・設定する内容
リクエストヘッダを削除するための設定を指定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ request-headers

【属性】

属性名 説明 必須 デフォルト値
header
削除するリクエストヘッダ名を設定します。

なし
where-value
本属性に指定された正規表現にマッチする値を持つリクエストヘッダのみ削除します。
省略した場合、header属性に設定した値と同名のリクエストヘッダすべてを削除します。

×
なし

レスポンスヘッダの設定

タグ名 response-headers
レスポンスヘッダに関する設定を行います。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <response-headers>
      ....
    </response-headers>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定 ×
設定値・設定する内容 レスポンスヘッダに関する設定を指定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ reverse-proxy

レスポンスヘッダの変更設定

タグ名 set
レスポンスヘッダを変更するための設定を行います。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <response-headers>
      <set header="x-my-header" value="my-value" />
    </response-headers>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定
設定値・設定する内容
レスポンスヘッダを変更するための設定を指定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ response-headers

【属性】

属性名 説明 必須 デフォルト値
header
変更するレスポンスヘッダ名を設定します。

なし
value
新しいレスポンスヘッダ値を設定します。

なし

レスポンスヘッダの追加設定

タグ名 append
レスポンスヘッダを追加するための設定を行います。
同名のレスポンスヘッダ名が存在する場合、リストに追加されます。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <response-headers>
      <append header="x-my-header" value="my-value" />
    </response-headers>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定
設定値・設定する内容
レスポンスヘッダを追加するための設定を指定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ response-headers

【属性】

属性名 説明 必須 デフォルト値
header
追加するレスポンスヘッダ名を設定します。

なし
value
追加するレスポンスヘッダ値を設定します。

なし

レスポンスヘッダの削除設定

タグ名 unset
レスポンスヘッダを削除するための設定を行います。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <response-headers>
      <unset header="x-my-header" where-value="my-value" />
    </response-headers>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定
設定値・設定する内容
レスポンスヘッダを削除するための設定を指定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ response-headers

【属性】

属性名 説明 必須 デフォルト値
header
削除するレスポンスヘッダ名を設定します。

なし
where-value
本属性に指定された正規表現にマッチする値を持つレスポンスヘッダのみ削除します。
省略した場合、header属性に設定した値と同名のレスポンスヘッダすべてを削除します。

×
なし

レスポンス置換処理一覧設定

タグ名 substitutes
レスポンスの置換処理の一覧を設定します。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <substitutes>
      ....
    </substitutes>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定 ×
設定値・設定する内容
レスポンスの置換処理の一覧を設定します。

単位・型 なし
省略時のデフォルト値 なし
親タグ reverse-proxy

レスポンス置換処理設定

タグ名 substitute
レスポンスの置換処理を設定します。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <substitutes>
      <substitute content-type="text/html" regexp="http://www\.example\.com/" where-path="/example/.*"></substitute>
    </substitutes>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定
設定値・設定する内容
レスポンスの置換処理を設定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ substitutes

【属性】

属性名 説明 必須 デフォルト値
content-type
レスポンスが本属性に設定したコンテントタイプと一致する場合に限り置換を行います。

× なし
regexp
レスポンスに対して置換を行う対象を正規表現で設定します。

× なし
where-path
URLが本属性に設定した正規表現にマッチする場合に限り置換を行います。

× なし

レスポンス置換文字列設定

タグ名 replacement
レスポンスの置換後の文字列を設定します。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <substitutes>
      <substitute>
        <replacement>${im-reverse-proxy-base-url}/example/</replacement>
      </substitute>
    </substitutes>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目
複数設定 ×
設定値・設定する内容
置換後の文字列を設定します。
単位・型 文字列
省略時のデフォルト値 なし
親タグ substitute

コラム

<replacement> では以下の変数を利用できます。

  • ${im-base-url}
    • 「<ベースURL>」に置換されます。
  • ${im-reverse-proxy-base-url}
    • 「<ベースURL>/reverse_proxy」に置換されます。

独自設定

タグ名 any-config
独自の設定を行います。
デフォルトハンドラ以外の実装を用いた際に、独自の設定をリバースプロキシハンドラが受け取れるために用意しています。

【設定項目】

<im-reverse-proxy-path-config>
  <reverse-proxy>
    <any-config>
      ....
    </any-config>
  </reverse-proxy>
</im-reverse-proxy-path-config>

必須項目 ×
複数設定 ×
設定値・設定する内容
ハンドラー独自の設定を指定します。
単位・型 なし
省略時のデフォルト値 なし
親タグ reverse-proxy