Hitachi

Cosminexus V11 アプリケーションサーバ Cosminexus HTTP Server


4.7.2 ディレクティブの設定方法

リバースプロキシを設定する各ディレクティブの設定例を次に示します。

ここではHTTP/1.1を使用するものとし,各アドレスを次のように仮定しています。

リバースプロキシ:www.example.com

バックエンドサーバ:backend.example.com

〈この項の構成〉

(1) リクエストURLの再割り当ておよびリクエストヘッダの再割り当て

次のようにProxyPassディレクティブを設定すると,クライアントからの"http://www.example.com/news/oct-2001"というリクエストは"http://backend.example.com/oct-2001"というリクエストに変更されます。

ProxyPass /news/ http://backend.example.com/

Host:ヘッダは"Host:www.example.com"から"Host:backend.example.com"に再割り当てします。そして,リバースプロキシはバックエンドサーバからのレスポンスをクライアントに応答します。

(2) 応答ヘッダの再割り当て

Redirectディレクティブの指定,イメージマップの利用または末尾を/(スラッシュ)で閉じないディレクトリ指定のリクエストなど,バックエンドサーバでリダイレクトが指示された場合には,バックエンドサーバからのレスポンスのLocationヘッダにバックエンドサーバのアドレスが記載されます。これをそのままクライアントに応答すると,クライアントはリダイレクトをリバースプロキシではなく,直接バックエンドサーバにリクエストします。そこで,ProxyPassReverseディレクティブに次のように指定し,リダイレクトリクエストもリバースプロキシを通るリクエストになるようにします。

ProxyPassReverse /news/ http://backend.example.com/

これで,Locationヘッダはリバースプロキシのアドレスに変更されます。

(3) Set-Cookieヘッダの再割り当て

バックエンドサーバがクライアントに返すSet-Cookieヘッダには,ドメイン名およびパス名が指定される場合があります。これは,Set-Cookieヘッダのドメイン名およびパス名に一致したリクエストの場合だけ,クライアントにクッキーを送信させるためです。

Set-Cookieヘッダの再割り当てをしない場合と再割り当てをする場合について説明します。