プロキシ変換仕様
コンテンツ変換
基本的な変換ルールはフィルタ方式と同じ仕様で変換を行います。
また、プロキシ先がHTMLやServlet/JSPである必要はなく、PHP・CGI・ASPでも変換を行います。
リクエストメソッド
Durianでサポートされているメソッドは
- GET
- POST
- HEAD
のみです。それ以外のメソッドでリクエストした場合は、エラーを返します。
セッションID自動付加
あらかじめDurian管理ツールで、プロキシ先のアプリケーションが発行するセッションIDを登録しておくと、セッションを引き継げるようにAタグ、FORMタグ、リダイレクト時にURLにセッションIDを付加します。
ただし、クライアントがCookieに対応している場合は、セッションIDの自動付加は行いません。
アプリケーションサーバ固有の注意事項
IBM WebSphere Application Server(以下WAS)上で Durian Proxy を使用する場合、プロキシ先のアプリケーションで発行したJ2EEセッションID(JSESSIONID)は duriansid という名前に置換します。これは、WASでは JSESSIONID をセッションIDだけではなく、キャッシュID、CloneIDといったWAS固有の情報を埋め込むために、JSESSIONIDというパスパラメータをハンドリングしているためです。Durianではこれを回避するために、一時的に duriansid という名前でプロキシ先のセッションIDを保持し、実際にプロキシするタイミングで JSESSIONID パスパラメータに戻して送信します。
リソースセレクト
基本的なルールはフィルタ方式と同じですが、プロキシ方式でのリソースセレクトの場合はリソースマッチングが一度しか行われません。
リソースセレクトについての詳細は、リソースセレクトを参照してください。
リクエストヘッダ
概要
プロキシ方式時はプロキシ先のアプリケーションに対してリクエストヘッダを追加して送信します。送信するヘッダは以下の通りです。
リクエストヘッダ名 | 説明 | 例 |
---|---|---|
Via | 経由したProxyサーバーに関する情報。"[HTTPプロトコルバージョン] [サーバー名] (Durianバージョン)" という形式で送信される。ただし、元のリクエストにViaヘッダが含まれている場合は、カンマで区切って送信される | Via: 1.1 sample.localhost (Durian4.4.0) |
X-Forwarded-For | リモートIPアドレス。ただし、元のリクエストにX-Forwarded-Forが含まれている場合は、カンマで区切って送信される | X-Forwarded-For: 127.0.0.1 |
X-Forwarded-Host | リモートホスト名。ただし、元のリクエストにX-Forwarded-Hostが含まれている場合は、カンマで区切って送信される | X-Forwarded-Host: sample.localhost |
X-Forwarded-Server | 同上 | X-Forwarded-Server: sample.localhost |
X-Forwarded-Scheme | スキーマ | X-Forwarded-Scheme: http or https |
Max-Forwards | 10固定。ただし、元のリクエストにMax-Forwardsが含まれている場合は、-1した値 | Max-Forwards: 10 |
X-Durian-***** | 端末情報を表すリクエストヘッダ。詳しくは端末情報取得を参照 | X-Durian-Product-Name: N-06A |
Viaヘッダを除く追加リクエストヘッダは、Durian管理ツールで有効/無効を切り替えることができます。
Cookie
概要
プロキシ方式では、リモートサーバが送信したSet-Cookieヘッダのdomainおよびpathをリバース変換し、Cookieが正しくクライアントに設定されるようになります。
デフォルトではこの機能は有効になっています。
リバース変換ルール
Set-Cookieヘッダのdomain属性は、次のようなルールに基づいて変換されます。
- domainがリモートサーバのホスト名に完全一致する場合、domainをプロキシサーバのホスト名に変換します。
- domainがリモートサーバのホスト名に後方一致するが、プロキシサーバのホスト名には一致しない場合、domainをプロキシサーバのホスト名に変換します。
- いずれでもない場合、domainは変換しません。
Set-Cookieヘッダのpath属性は、次のようなルールに基づいて変換されます。
- domainがリモートサーバに完全一致・後方一致する場合、もしくはdomainが指定されていない場合で、pathが指定されていた場合、pathをリモートパスまでのURLを付加したものに変換します。
- domainがリモートサーバに完全一致・後方一致する場合、もしくはdomainが指定されていない場合で、pathが指定されていない場合、リモートURLのディレクトリ部分をpathとみなし、変換します。
- いずれでもない場合、pathは変換しません。
画像変換
プロキシ方式でも画像変換を行います。
詳しい仕様・書式は、画像変換プラグイン仕様を参照してください。
WebTrends
プロキシ方式でもWebTrendsのユーザトラッキングを行います。
詳しい仕様・書式は、WebTrendsプラグイン仕様を参照してください。