HTTP プロキシー/サーバー
この DeleGate を内部ホスト上のクライアントから使う場合、 HTTP, HTTPS (Security), FTP, Gopher, Wais などの プロキシーに "firewall:8080" を指定します。
例) 多段 HTTP プロキシー DeleGate
内部ホストからの要求のみ受け付ける generalist DeleGate を firewall 上で走らせ、firewall ホスト上の generalist を使用する、 specialist を内部で、走らせる。 generalistは、上流 DeleGate として、 任意プロトコルの複数の DeleGate で共有できます。
例) 元 HTTP サーバー DeleGate
例) DeleGate を CGI プログラムとして使う
HTTP 伝送ログ書式
%C | -- CERN-HTTPD の共通ログファイル書式 |
%c | -- ミリ秒解像度を持った日付が記録されるのを除き、%C と同じ |
%D | -- DeleGate による拡張 (connTime+relayTime:status) |
%X | == '%C "%r" "%u"' Referer と User-Agent付きの共通ログファイル書式 |
%r | -- 要求メッセージ中の Referer フィールド |
%u | -- 要求メッセージ中の User-Agent フィールド |
%S | -- サーバーへの CONNECT ステータス (c,m,p,d,s,v) |
%s | -- HTTPCONF=session によるセッション ID |
%As | -- ダイジェスト認証中のセッション ID |
%{field} | -- 要求メッセージ中の任意のフィールド |
"%s" により出されるセッション識別子は、 AUTHORIZER=-dgauth オプションによって生成された "%As" の間、 HTTPCONF=session:cookie によって生成されています。 セッション識別子の書式:
例) "031114-173045.1234.5+6+7.9" は、PID=1234 のプロセスによって、 November 14 の 17:30:45 に開始されたセッション中での クライアントからの 9回目の要求であることを意味します。 セッションの開始は、LOGFILE にこのように記録されます。
注記: reqnum 部分は、並列、または、パイプライン 要求がセッション所有者であるクライアントによって生成された場合、 ユニークではありません。 注記: "%As" 用の reqnum 部は、それぞれの要求で加算されないかもしれません。 なぜなら、セッション識別子のコンテナー (この場合、ダイジェスト認証の "opaque" パラメーター) が、それぞれの要求で更新されないかもしれないからです。
HTTPCONF parameter == HTTPCONF=what:conf
MOUNT パラメーターの中から仮想サーバーを自動的に検出し、それらを仮想サーバーだけに
適用する MOUNT ルールとして表します。
これは、各 MOUNT パラメーターの "nvserv" マウントオプションで
指定することで、手動で実行できます。
"nvserv:alias" は、共通の IP アドレスを持つ対象サーバー郡のホスト名を検出し、
それらを仮想サーバーとして表します。
"nvserv:gen" は、"genvhost" マウントオプション付きの MOUNT パラメーターを仮想サーバーとして
表します。
"nvserv:auto" は、"nvserv:alias,gen" と等価です。
推測による自動検出は、avserv マウントオプションを明示的に指定することで
上書きできます。
"nvserv:none" は、自動検出された、または "nvserv" マウントオプションで明示的に指定された、
仮想サーバーに対する全ての取扱いを無効にします。
例)
例)
例)
クライアントに保存される Set-Cookie 応答内の指定した属性を暗号化し、後で、 復号し、Cookie 発行元だけに Cookie 要求を転送します。 Cookie 内の属性は、"attribute@host" または "attribute@.domain" で指定します。 前者では、host で生成された cookie は暗号化され、 host にだけ、エコー(返され)されます。 後者では、domain 内のホストで生成された cookie を、 domain 内のホストにエコー(返せ)せます。 cryptKey 内の特殊文字列 "%a" は、 クライアントの IP アドレスに置き換えられます。 これは、その IP アドレスを持つホスト上のクライアントからのみ 暗号化 Cookie を使えるようにします。
例)
例)
例)
HTTPCONF="add-qhead:X-Forward-For:%a"
例)
例)
例)
例)
FILETYPE parameter == FILETYPE=suffix:gopherType:altText:iconName:contentType -- default: FILETYPE=".txt:0:TXT:text:text/plain" FILETYPE=...
例)
CGIENV parameter == CGIENV=name[,name]* -- default: CGIENV="*"
HTTP-DeleGate 用のマウントオプション
制御:
例) 仮想ホスティング,複数の HTTP サーバーとして動作する
MOUNT="/* http://wwwA/* nvhost=dom1.com"
MOUNT="/* http://wwwB/* nvhost=dom2.org"
MOUNT="/* file:data/wwwC/* nvhost=dom3.net"
MOUNT="/* file:data/www/*"
例)
HTTP-DeleGate 用 AUTH パラメーター
例)
%u | -- Ident プロトコルで得られたユーザー名 |
%h | -- ソケットから得られたクライアントのホスト名 |
%i | -- クライアントに向けたネットワークインターフェースのホスト名 |
%I | -- %i と同様ですが、HTTP で "Host:" が与えられた場合その値を使用します。 |
%a | -- クライアントのホストアドレス |
%n | -- クライアントのネットワークアドレス |
%H | -- DeleGate のホスト名 |
%M | -- DeleGate の ADMIN |
%A | -- "CMAP=string:authgen:mapSpec" によって生成される文字列 |
%U | -- クライアントの [Proxy-]Authorization: username:password の username 部 |
%P | -- クライアントの [Proxy-]Authorization: username:password の password 部 |
例)
"passWord/%i" 書式でパスワードが生成され、DeleGate は、 このようなパターンの Authorization フィールドをともなってくる要求を拒否します。 このように、偽パスワードは、ホスト"%i" 上の DeleGate を通過できません。
例)
%F | -- From フィールドの E-mail アドレス |
%L | -- From: local@domain フィールドの local 部 |
%D | -- From: local@domain フィールドの domain 部 |
%U | -- Authorization: username:password の username 部 |
%P | -- Authorization: username:password の password 部 |
%Q | -- Forwarded: フィールドの "for clientFQDN" 部 |
例)