[CTX]
[ALL]
HTTPCONF parameter
HTTPCONF parameter == HTTPCONF=what:conf
- welcome:listOfWelcomeFiles
-
-- default: welcome.dgp,shtml,index.[dgp,shtml,html,cgi},-dir.html
インデックスファイルか、"/path/" のように "/" で終わるディレクトリーの URL
のために使わなければならない、CGI スクリプトのリスト。
これは、ファイル名の候補リストです。
リストは "-dir.html" で終了することができ、
これは、組み込みインデックスジェネレーターを意味します。
リストが空の場合、空データがインデックスデータの代わりになります。
- search:pathOfSearchScript
-
-- default: none
"/path?search" のような検索部をともなう URL に利かせる CGI スクリプトのパス。
これは、全ての URL に利かせるグローバル設定です。
それぞれの MOUNT ポイントに対して、
ローカルな検索スクリプトも次のように指定できます。
MOUNT="/path2/* /root/of/path2/* search:script2".
この、ローカルな設定は、
グローバルなものに優先します。
特殊ローカル設定 "search:-" で、
MOUNT ポイントに対するグローバル設定を無視できます。
- nvserv:noauto | auto | alias | gen | none
-
-- default: HTTPCONF=nvserv:noauto
MOUNT パラメーターの中から仮想サーバーを自動的に検出し、それらを仮想サーバーだけに
適用する MOUNT ルールとして表します。
これは、各 MOUNT パラメーターの "nvserv" マウントオプションで
指定することで、手動で実行できます。
"nvserv:alias" は、共通の IP アドレスを持つ対象サーバー郡のホスト名を検出し、
それらを仮想サーバーとして表します。
"nvserv:gen" は、"genvhost" マウントオプション付きの MOUNT パラメーターを仮想サーバーとして
表します。
"nvserv:auto" は、"nvserv:alias,gen" と等価です。
推測による自動検出は、avserv マウントオプションを明示的に指定することで
上書きできます。
"nvserv:none" は、自動検出された、または "nvserv" マウントオプションで明示的に指定された、
仮想サーバーに対する全ての取扱いを無効にします。
- methods:listOfAcceptableMethods
-
-- default: methods:OPTIONS,GET,HEAD,POST,PUT,...
-- LOGFILE に書かれたログ (HTTPCONF=methods:"+") を参照して下さい。
許可する HTTP 機能を制限/追加します。
例)
HTTPCONF=methods:GET,HEAD -- GET と HEADのみ、許可
HTTPCONF=methods:-POST,-PUT -- POST と PUT を不許可
HTTPCONF=methods:+,NEWMETHOD1 -- NEWMETHOD1 を追加許可
HTTPCONF=methods:* -- 全て許可
- rvers:listOfAcceptableResponseVersions
-
-- default: rvers:HTTP
HTTP サーバーの応答メッセージ中にバージョンを追加する。
例)
- post-ccx-type:listOfTypes
-
-- default: post-ccx-type:x-www-form-urlencoded
CHARCODE による変換を適用する
要求メッセージ中の Content-Type 名一覧を指定する。
例)
HTTPCONF=post-ccx-type:+,multipart/form-data
- cryptCookie:listOfCookies:cryptKey
-
listOfCookies == attributes[@domains]
attributes == attribute | {attribute,attribute,...}
domains == domain | {domain,domain,...}
domain == [.]domainName
cryptKey == string | %a | %P
クライアントに保存される Set-Cookie 応答内の指定した属性を暗号化し、後で、
復号し、Cookie 発行元だけに Cookie 要求を転送します。
Cookie 内の属性は、"attribute@host" または
"attribute@.domain" で指定します。
前者では、host で生成された cookie は暗号化され、
host にだけ、エコー(返され)されます。
後者では、domain 内のホストで生成された cookie を、
domain 内のホストにエコー(返せ)せます。
cryptKey 内の特殊文字列 "%a" は、
クライアントの IP アドレスに置き換えられます。
これは、その IP アドレスを持つホスト上のクライアントからのみ
暗号化 Cookie を使えるようにします。
例)
HTTPCONF="cryptCookie:SessionID@host1.dom1,UserID@.dom2:nanjamonja"
HTTPCONF="cryptCookie:UserID@.dom:nanjamonja"
HTTPCONF="cryptCookie:UserID@{host1.dom,host2.dom}:nanjamonja"
- kill-[i][qr]head: listOfHeaders
- サーバー/クライアントへ送られる要求/応答メッセージを転送する前に、
listOfHeaders に含まれるヘッダーフィールドを削除します。
"kill-qhead" は、サーバーへ向けた要求メッセージにのみ適用され、
"kill-rhead" は、クライアントへの応答メッセージにのみ適用されます。
もし、"kill-iqhead:Pragma,Cache-Control" のように、"i" が前置されるなら、
指定されたフィールドは、DeleGate が HTTP ヘッダーとして解釈する前に削除されます。
例)
- add-[i][qr]head:name:body
- 転送する要求/応答メッセージに、ヘッダー name:body を追加する。
クライアントの識別情報は、 "%format" 表記により、
body 文字列に挿入できます。
"i" が、"add-ihead:Pragma:no-cache" のように前置されるなら,
ボディとともに指定されたフィールドは、クライアント/サーバーからの
HTTP ヘッダーとして DeleGate で解釈される入力に追加されます。
例)
- replace-[i][qr]head:name:body
- 転送される要求/応答メッセージ内のヘッダー "name:" を、
"name:body" で置き換える。
これは、kill-head と、add-head の組合せと同じです。
例)
- kill-tag: listOfTags
- サーバーからの、text/html 応答中で listOfTags に指定されたタグが
使用されている場合、それを無効にします。
例)
- ver:1.0
- HTTP/1.0 クライアント/サーバーとして動作
- svver:1.0
- HTTP/1.0 サーバーに対するクライアントとして動作 (HTTP/1.0 で、要求を送信)
- clver:1.0
- クライアントに対して、HTTP/1.0 サーバーとして動作 (応答中で、chunked エンコードを使用しない)
- acc-encoding:encoding [-thrugzip]
- Accept-Encoding ヘッダーをサーバーに送ります。
これは、DeleGate が行う、MOUNT, CHARCODE, CACHE などをともなういくつかの
コンテンツ翻訳作業に適用されます。このような翻訳作業を行うとき、
コンテンツ (応答ボディ) を DeleGate が知らないフォーマットにエンコードできません。
"identitiy" は、サーバー上のコンテンツエンコーディングを無効にすることを指定します。
"-thrugzip" は、Accept-Encoding:gzip をクライアントからサーバーへ転送します。
"gzip" プログラムが DeleGate ホスト上で利用可能な状態に無い場合
(すなわち LIBPATH に内に見つからない)、
"identity" が、常に送られます。
- gen-encoding:encoding [gzip]
- このエンコーディングは、DeleGate から クライアントに送られる内容に適用されます。
現実装では、"gzip" のみが有効です。
"identity" やその他のものは、すべてのエンコーディングを無効にします。
- tout-wait-reqbody:period [30]
- 要求ボディ内の最初のデータ待時間の最大値
- tout-in-reqbody:period [15]
- 要求ボディ内の次のデータを待ち時間の最大値
(クライアントサイドの遅いフィルタープログラムのため、調整できます)
- tout-buff-reqbody:period [5]
- サーバーに送る要求メッセージをバッファする最大値
- tout-cka:period [5]
- クライアントとの接続を確保する最大値
(タイムアウト値は、それぞれのクライアントホストからの最初の接続から10回長くなっていきます)
- max-cka:number [50]
- キープアライブ中の単一ホストからの中継要求の最大数
(それぞれのクライアントホストからの最初の接続にから10回、より大きな値が提供されます)
これは、CONNECT メソッドによる SSLtunnel 接続経由の通信にも適用されます。
一組の上り/下りデータは、HTTP 上の一組の要求/応答とみなされ、それらの最大数が制限されます。
- max-ckapch:number [8]
- クライアントホスト単位でのキープアライブ接続の最大数
- max-reqline:length [4k]
- 許容する要求文字長の最大値
- max-reqhead:length [12k]
- 許容する要求ヘッダー長の最大値
- max-gw-reqline:length [512]
- 他のプロトコルの他のサーバーに転送する要求文字長の最大値
- max-hops:number [20]
- HTTP プロキシーチェーンの最大ホップ数
- tout-resp:period
[TIMEOUT=io]
- サーバーからの応答待ち時間の最大値
- tout-pack-intvl [10.0]
- CONNECT メソッドによる
SSLトンネル
上で中継されるパケット間隔の最大値
- halfdup
- CONNECT メソッドによる SSLtunnel の全二重使用を禁止します。
- urlesc[:escChars] [empty]
- 処理を行なう前に、要求 URL 中のキャラクターセット を "%XX"
表記により、エスケープします。
特殊なケースで、HTTPCONF="urlesc" は、HTTPCONF="urlesc:<>" を意味します。
- mypro.xyz:{forw,thru,stop}
-
デフォルトで、仮想ドメイン名 "http://mypro.xyz"
のアクセスは、あなたのプロキシーサーバーへのアクセスとみなされます。
HTTPCONF="mypro.xyz:forw" は、前置ホップ数 によって、リクエストの上位プロキシーへの要求を有効化します。
HTTPCONF="mypro.xyz:thru" は、上位プロキシーがもしあれば、この解釈と転送を無効化します。
HTTPCONF="mypro.xyz:stop" は、この解釈と転送を停止します。
mypro.xyz へのアクセス制御の他の方法は AUTHORIZER="-list{User:Pass}:*:*.mypro.xyz:*" のように、AUTHORIZER を使います。
- proxycontrol[:[on|off]]
-
要求 URL 中 の "?_?" に続くサブストリングを、DeleGate の制御情報として理解します。
DeleGate が URL?_?proxycontrol の要求を受けた場合、
URL 部のみサーバーに転送され、また、proxycontrol 部は(可能ならば)DeleGate が使用します。
- cka-cfi
- クライアントキープアライブ (外部フィルター(FCL,FTOCL)含む) をともなった接続を確立します。
- nolog:listOfCodeType[:connMap]
-
listOfCodeType == [ respCode / ][ Type [ / subType ] ]
アクセスログ (PROTOLOG) に書き込まない応答コードまたは、
応答メッセージ中の Content-Type を指定します。
例)
- xferlog:ftp
- xferlog 書式でも FTP/HTTP 処理を記録します。
- bugs:listOfBugs
- listOfBugs は、以下のような現存するバグを回避するために
指定した機能を無効にします:
- no-gzip ... Content-Encoding:gzip を無効にします。
- no-keepalive ... Connection:Keep-Alive を無効にします。
- no-keepaliveproxy ... クライアント側プロキシーとの Connection:Keep-Alive を無効にします。
- no-chunked ... Transfer-Encoding:chunked を無効にします。
- no-flush-chunk ... それぞれの chunk 後に応答をフラッシュしないようにします。
- kill-contleng ... chunk されたエンコード内の元の Content-Length を削除します。
- add-contleng ... chunk されたエンコードにおいて Content-Length を追加または更新します。
- do-authconv ... クライアントのベーシックから、サーバーのダイジェスト認証変換を有効にします。
- svauth:no-basic
-
クライアントからサーバーへのベーシック認証 (平文テキストパスワードを含む)
の転送を停止します。
サーバーがダイジェスト認証をサポートしている場合、DeleGate がクライアントに代わり
それを行います。
- bugs:thru-304
-
"If-Modified-Since" ヘッダーを持つ条件付き要求に対する応答メッセージとして、
"304 Not Modified" から、"200 Ok" への変換を無効にします。
フィルターが対象データの最終更新日 (Last-Modified) に基づき、空 (304 Not Modified) として
返さなけれはならないとき、外部フィルターを使う DeleGate は、"200 Ok" コードを伴うボディを持つ
HTTP 応答メッセージを返そうとします。
これは、フィルターにより動的に応答データを書き換えるのに必要ですが、
条件付き要求と、"304" 応答での利点を無くします。
"thru-304" は、上記変換を無効化し、DeleGate は、クライアントからの "If-Modified-Since" 要求と、
サーバーからの "Last-Modified" と、"304 Not Modified" 応答を透過します。
- svauth:less-basic
-
クライアントからサーバーへのベーシック認証の転送を、
サーバーがベーシック認証を要求するまで延期します。
- session:cookie
-
クッキーによるセッション管理を有効にします。
セッション識別子 は、
CFI/CGI プログラムに、環境変数 "X_DIGEST_SESSION" で渡され、
さらに、PROTOLOG でログを取ることができます。
例)
- 例)
-
HTTPCONF=search:/path/of/searchScript
MOUNT="/bin/* cgi:/path/of/cgi-bin/* search:-"
MOUNT="/* file:/path/of/data/*"