リバースプロキシの設定¶
項目
概要¶
リバースプロキシの動作設定を行います。
モジュール リバースプロキシ フォーマットファイル(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