[CTX]
[ALL]
MountOptions for HTTP-DeleGate
HTTP-DeleGate 用のマウントオプション
条件:
- vhost={HostList} -- 仮想ホストの突き合わせと書換え。
-
要求の書換え時、要求メッセージ中の "Host:" フィールドの値が、
HostList に含まれるとき、真となり、
また、応答書換え時には無条件に真となります。
それは、応答に対する、特殊な書換えにより、仮想ホスト をサポートし、
応答メッセージ中のすべての実ホストの完全な URL を仮想ホストのそれに書き換えます。
- avhost={HostList} -- IP アドレス基準仮想ホスティング
-
"vhost" オプションと等価です。
- nvhost={HostList} -- 名前基準仮想ホスティング
-
"nvhost" は、そのホスト名によって他と区別される名前基準の仮想ホストを生成するのを
制限すること以外 "vhost" オプションと同様に、仮想ホスティングを構成するのに使います。
各仮想ホストは、そのホスト名のテキスト分析によって識別されます。
( このように、各ホストに "-" を前置きしないことは、"vhost" オプションが必要な
テキストのみの突き合わせを強制するのに必要です)
例) 以下の 2つの MOUNT パラメーターは互いに同じです。
MOUNT="/* http://server/* vhost=-www.domain"
MOUNT="/* http://server/* nvhost=www.domain"
特別なオプション "nvhost=-thru" は、クライアントからサーバーに示された
仮想ドメイン名の転送を容易にするのに使えます。
オプションは、対象サーバーへ送られる仮想ドメイン名と突き合わせるということです。
デフォルトで、ドメイン名は デフォルトによる、この MOUNT ルールの rURL 内の対象サーバー、
または nvserv で明示的に指定できます。
例) 以下の 3つの MOUNT パラメーターは互いに同じです。
MOUNT="/* http://domain/* nvhost=-thru,rserv=server"
MOUNT="/* http://server/* nvhost=-thru,nvserv=domain"
MOUNT="/* http://server/* nvhost=domain,nvserv=-thru"
- qmatch=pattern -- 要求ヘッダーのパターン突き合わせ
-
pattern が 要求ヘッダー中の文字列と一致した場合、真。
(例: qmatch=*User-Agent:*compatible;%20MS*)
- dstproto={ProtoList} -- 指定したプロトコルのサーバーに対して
-
対象サーバーのプロトコルが ProtoList に含まれる場合、真。
- method={methodList} -- 要求手段
-
現要求のアクセス手段が、methodList に含まれる場合、真。
- asproxy
- DeleGate が、プロキシーサーバーとして呼ばれた (完全な URL 書式で要求された URL で) 場合に、真。
- !asproxy
- DeleGate が、要求内でプロキシーサーバーとしてアクセスされなかった場合に、真。
- withquery
- 要求された URL が、 "?query" 部を持つ場合、真。
制御:
- authorizer=authServList
-
MOUNT ポイントに適用する AUTHORIZER。
MountOption と、コマンドラインオプションの
両方に AUTHORIZER が指定された場合は、
MountOption の内ひとつが使用されます。
- moved[={300|301|302|303}]
- 書換えでの "Location:rURL" に "302 Moved" 応答が返った場合、
rURL に中継しません。
同一サーバー上での書換えは、MOUNT="/path1 ///path2 moved" のように、
rURL 内の host-name 省略 を使用して楽にできます。
- referer
-
転送される Referer: フィールドだけに書き換えを適用します。
"where=ref" と同じ意味です。
- useproxy[=proxyURI]
- "305 Use Proxy" 応答メッセージを生成します。
proxyURI が省略されるか、"direct" を指定した場合、
応答メッセージは、"Set-Proxy: DIRECT" として、 Set-Proxy フィールドをともなって送信されます。
他の場合、URI はフィールド中に "Set-Proxy: SET; proxyURI=proxyURI" がセットされます。
- realm=realmString
- 認証の範囲を指定します。
- forbidden
- forbidden として要求を拒否します ("rcode=403" と同じ意味)
- unknown
- unknown として要求を拒否します ("rcode=404" と同じ意味)
- rcode={300|301|302|303|304|305|306|403|404}
- 指定したステータスコードの応答を返します。
エラーメッセージをカスタマイズするとき便利です。
- onerror[=listOfCodes]
- この MOUNT エントリはエラー発生時の応答メッセージの代わりに使えます。
これは、要求に対する応答状態コードがエラー (4xx または 5xx) である場合と、
listOfCodesが指定され、そこに、応答状態コードが存在する場合に適用されます。
例) MOUNT="/path/* file:/tmp/autherr.cgi onerror={401,407}" は、
/tmp/autherr.cgi からの出力が、"/path/" 以下の URL へのアクセスで
認証エラーが発生した場合に、送信されます。
- robots={no|ok}
- ロボットによる検索の許可/不許可。
NNTP と FTP では、デフォルトは "no" で、
他のプロトコルでは、"ok" です。
- nvserv | nvserv=host -- 名前基準仮想サーバーへ転送します。
- 名前基準仮想ホスティングサーバーとして MOUNT する対象サーバーを指定します。
サーバーに送る仮想ホスト名は、デフォルトによる rURL" 内ホスト名部分か、
nvserv=host" で指定できます。
このオプションで、対象サーバーは、host の IP アドレスや、host の
別名が MOUNT されていない間、host 名の仮想サーバーとしてのみ MOUNT されます。
これは、対象サーバーの仮想ホスト名と、URL 内のホスト名がテキスト解析で一致したときだけ、
HTTP 応答メッセージ内の URL 書き換えに MOUNT ルールが適用されるということです。
"nvserv=-thru" で、クライアントからの仮想ホスト名をサーバーにそのまま渡せます。
- avserv | avserv=host
-- IP アドレス基準の仮想サーバーに転送中
- 対象サーバーは名前基準の仮想ホスティングサーバーではないことを表します。
このオプションで、全ての別名のサーバーや、対象サーバーの IP アドレスは、この MOUNT ルール
によって、MOUNT されます。
それは、MOUNT のデフォルトの振舞いですが、HTTPCONF="nvserv:auto"
で、MOUNT パラメーターセット内の仮想サーバーを自動的に検出するように変更できます。
この "avserv" オプシションは、自動的に仮想サーバーとして推測された、非仮想サーバーを表すのに
必要になりました。
- rserv=host[:port] -- 実対象サーバー
- HTTP 接続が確立した対象サーバーに向けた実ホスト名や、IP アドレスとポート番号を指定します。
このオプションは、仮想ホスティングサーバー に "nvserv=host" よりも、
rURL 内で指定された仮想ホスト名を MOUNT するのに使います。
例) 以下の 2つの MOUNT ルールは互いに同じです。
MOUNT="/v/* http://www.domain/* rserv=192.168.1.123"
MOUNT="/v/* http://192.168.1.123/* nvserv=www.domain"
"rserv" を指定することで、"nvserv" オプションで表されたような仮想サーバーを、
対象サーバーとして表します。
- genvhost=host
( nvserv と rserv オプションによって古いものとなりました。)
- その仮想名として対象サーバーが受け取るホスト名を指定する。
それは、サーバーに転送される要求メッセージ中の "Host: host" フィールド内にセットされます。
要求が 単一の HTTP プロキシー経由で転送されるときに、http://host... として要求 URL 内にセットされます。
対象サーバーを示す、MOUNT パラメーターの rURL 部分に由来するサーバーに、
デフォルトの Host フィールドを送る。
たとえば、MOUNT="/* http://hosti:8080/*" は、"Host: hosti:8080" をサーバー (hosti:8080 ポートで動作している)へ転送します。
クライアントからサーバーへの要求中の Host フィールドをスルーパスするには、
"genvhost=-thru" を指定します。
- ftosv=-cc-charCode
- サーバーに転送される HTTP ヘッダーのキャラクターセットを
charCode (jis|sjis|euc|utf8) に変換する。
- pathext=string
-
DeleGate が元サーバーであり、要求 URL に対するファイルを検索する際、
指定された string で拡張されたパス名が最初に検索されます。
"pathext=-ja" の場合を例にとると、
"index-ja.html" が、"index.html" より先になります。
これは、以下の様に他の MOUNT 条件と組み合わせた場合便利です。
MOUNT="/* file:data/www/* nvhost=www.delegate.jp,pathext=-ja"
例) 仮想ホスティング,複数の HTTP サーバーとして動作する
対象サーバー、または、ローカルディレクトリーは、DeleGate が参照された名前
("Host:vhost" ヘッダーフィールド内の) によって切り替わります。
この例では、"http://dom1.com" および "http://dom2.org" に対する要求は、
それぞれの対応するサーバーに転送され、"http://dom3.net" 他の名前への要求は、
対応するローカルディレクトリーが検索されます。
MOUNT="/* http://wwwA/* nvhost=dom1.com"
MOUNT="/* http://wwwB/* nvhost=dom2.org"
MOUNT="/* file:data/wwwC/* nvhost=dom3.net"
MOUNT="/* file:data/www/*"
例)
"useproxy", "method", "dst", "withquery" オプションは、元々、
潜在的に厄介なアクセス (対象サーバーの CGI プログラムを呼出すような)
を拒否するために取り入れられました。
例) POST メソッドをともなう要求、または、"?" をともなう URL を拒否するには:
MOUNT="http:* = method=POST,asproxy,useproxy"
MOUNT="http:* = withquery,asproxy,useproxy"