IBM HTTP Server のヘルプ: Proxy ディレクティブ
構文 - ProxyRequests on | off
デフォルト - ProxyRequests Off
コンテキスト - サーバー構成、Virtual Host状況 - 基本モジュール - mod_proxy互換性 - ProxyRequests が使用可能になるのは Apache 1.1 以上の場合だけです。
これによって、Apache をプロキシー・サーバーとして機能できるか、あるいは機能できないようにします。 ProxyRequests を「オフ」に設定しても、 ProxyPass ディレクティブの使用は使用不可にはなりません。
デフォルト - なし
構文 - ProxyRemote <match> <remote-server>
コンテキスト - サーバー構成、Virtual Host状況 - 基本
モジュール - mod_proxy
互換性 - ProxyRemote が使用可能になるのは Apache 1.1 以上の場合だけです。
これは、このプロキシーに対するリモート・プロキシーを定義します。<match> は、リモート・サーバーがサポートする URL 体系の名前であるか、あるいはリモート・サーバーを使用する必要がある特定の URL であるか、あるいはすべての要求でサーバーに連絡する必要があることを示すための '*' のいずれかです。 <remote-server> はリモート・サーバーの部分 URLです。構文:
<remote-server> = <protocol>://<hostname>[:port]
<protocol> はリモート・サーバーとの通信に使用する必要があるプロトコルです。このモジュールがサポートするのは "http" だけです。
例 :
ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000
ProxyRemote * http://cleversite.com
ProxyRemote ftp http://ftpproxy.mydomain.com:8080
最後の例では、このプロキシーは、現在、別の HTTP プロキシー要求にカプセル化した FTP 要求を、それらを処理できる別のプロキシーに転送します。
構文 - ProxyPass <path> <url> <path> <url>
コンテキスト - サーバー構成、Virtual Host状況 - 基本モジュール - mod_proxy互換性 - ProxyPass が使用可能になるのは Apache 1.1 以上の場合だけです。
このディレクティブによって、リモート・サーバーをローカル・サーバーのスペースにマップすることができます。
すなわち、ローカル・サーバーは従来のようにプロキシーとして作動しませんが、リモート・サーバーのミラーとして現れます。 <path> はローカル仮想パスの名前です。<url> はリモート・サーバーの部分 URL です。
ローカル・サーバーが http://wibble.org/ のアドレスをもっている場合には、
ProxyPass /mirror/foo/ http://foo.com/
によって、
<http://wibble.org/mirror/foo/bar > のローカル要求を、
<http://foo.com/bar > へのプロキシー要求に内部的に変換することになります。
構文 - ProxyPassReverse <path> <url> <path> <url>
コンテキスト - サーバー構成、Virtual Host状況 - 基本モジュール - mod_proxy互換性 - ProxyPassReverse が使用可能になるのは Apache 1.3b6 以上の場合だけです。
このディレクティブによって、Apache は HTTP リダイレクト応答で Location ヘッダーの URL を調整することができます。たとえば、HTTP はリバース・プロキシーを後方にとどまらせるバックエンド・サーバー上でリダイレクトするために、リバース・プロキシーをう回しないようにするために Apache をリバース・プロキシーとして使用する時にこれが必要です。
<Path> はローカル仮想パスの名前です。
<url> はリモート・サーバーの部分 URL です - 同様に、これらは ProxyPass ディレクティブでも使用されます。
例 :
ローカル・サーバーが http://wibble.org/ のアドレスをもっている場合には、
ProxyPass /mirror/foo/ http://foo.com/
ProxyPassReverse /mirror/foo/ http://foo.com/
によって、
<http://wibble.org/mirror/foo/bar > のローカル要求を、
<http://foo.com/bar > へのプロキシー要求に内部的に変換することになります (機能性
ProxyPass はここで提供します)。
また、これは、サーバー foo.com が送信するもののリダイレクトも引き受けます。http://foo.com/bar が http://foo.com/quux にリダイレクトされる時には、Apache は HTTP リダイレクト応答をクライアントに送信する前に、これを http://wibble.org/mirror/foo/quux に調整します。
また、この ProxyPassReverse ディレクティブは対応する ProxyPass ディレクティブに依存していないために、 mod_rewrite からプロキシー・パススルー機能 ("RewriteRule ...
[P] ") と結合して使用できることにも注意してください。
構文 - AllowCONNECT <port list>
デフォルト - AllowCONNECT 443 563
コンテキスト - サーバー構成、Virtual Host状況 - 基本モジュール - mod_proxy互換性 - AllowCONNECT が使用可能になるのは Apache 1.3.2 以上の場合だけです。
AllowCONNECT ディレクティブは、プロキシー CONNECT 方式を接続することがあるポート番号のリストを指定します。現在のブラウザーは、https 接続が要求されて、http 上のトンネリングを行なうプロキシーが有効な時にこの方式を使用します。
デフォルトによって、デフォルトの https ポート (443) およびデフォルトの snews ポート (563) が使用可能になります。 AllowCONNECT ディレクティブを使用して、このデフォルトを上書きして、リストされたポートへの接続だけが使用可能になります。
構文 - ProxyBlock <word/host/domain list>
コンテキスト - サーバー構成、Virtual Host状況 - 基本モジュール - mod_proxy互換性 - ProxyBlock が使用可能になるのは Apache 1.2 以上の場合だけです。
ProxyBlock ディレクティブはワード、ホストまたはドメイン (あるいはこれらのすべて) のリストをスペースで区切って指定します。その名前に一致するワード、ホスト、またはドメインが含まれるサイトに対する HTTP、HTTPS、および FTP 文書要求は、プロキシー・サーバーによって ブロック化 されます。また、プロキシー・モジュールは始動中にホスト名となることがあるリスト項目の IPアドレスを判別して、突き合わせテストのためにこれらをキャッシュに入れようと試みます。
例 :
ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu
'rocky.wotsamattau.edu' は、IP アドレスによって参照される場合にも突き合わせされます。
また、'wotsamattau' は 'wotsamattau.edu' との突き合わせでも十分であることにも注意してください。
また、
ProxyBlock * は、すべてのサイトへの接続をブロック化することにも注意してください。
構文 - ProxyReceiveBufferSize <bytes>
コンテキスト - サーバー構成、Virtual Host状況 - 基本モジュール - mod_proxy互換性 - ProxyReceiveBufferSize が使用可能になるのは Apache 1.3 以上の場合だけです。
ProxyReceiveBufferSize ディレクティブは、増大するスループットのために、発信 HTTP および FTP接続の明示ネットワーク・バッファー・サイズを指定します。これは 512 より大きいか、あるいはシステムのデフォルト・バッファー・サイズの使用を指示するために 0 に設定する必要があります。
例 :
ProxyReceiveBufferSize 2048
このディレクティブを使用できるのは、イントラネット内の Apache プロキシー・サーバーの場合だけです。
NoProxy ディレクティブはサブネット、IP アドレス、ホストまたはドメイン (あるいはこれらのすべて) のリストをスペースで区切って指定します。これらの1つまたはそれ以上と一致するホストへの要求は、構成された ProxyRemoteプロキシー・サーバーに転送しないで常に直接実行されます。
例 :
ProxyRemote * http://firewall.mycompany.com:81
NoProxy .mycompany.com 192.168.112.0/21
NoProxy ディレクティブに対する引き数は、次のタイプ・リストのいずれかです。
Domain
Domain は部分的に修飾された DNS ドメイン名であり、ピリオドが先行しています。
これは、同じ DNS ドメインまたはゾーンに論理的に従属するホストのリストを表します (たとえば 、ホスト名のサフィックスはすべて Domain で終了している)。
例: .com .apache.org.
Domain と Hostname とを区別する (構文および意味の両方の観点; DNS ドメインは DNS A レコードをもつこともできる !) には、Domain は常に先行ピリオド付きで書き込まれます。
注: ドメイン名の比較は大文字小文字は考慮されずに行なわれ、Domain は常に DNS ツリーのルート中に固定されているとみなされるので、2つのドメイン .MyDomain.com および .mydomain.com. (末尾のピリオドに注意) は等しいものとみなされます。
considered equal. ドメイン比較には DNS 検索は関係しないので、これはサブネット比較よりも効率的になります。
SubNet
SubNet は数字 (ドット 10 進表記) 形式の部分修飾 IP アドレスであり、任意にスラッシュおよびネットマスクを後に続けて、有効ビット数として SubNet に指定します。これを使用して、共通ネットワーク・インターフェースを介して到達できるホストのサブネットを表します。明示的なネットマスクがない場合には、省略された (またはゼロの値の) 後書き数字がそのマスクを指定します。(この場合には、ネットマスクは 8 ビット幅の倍数にしかできません。)
例:
192.168 または 192.168.0.0
サブネット 192.168.0.0 で、16 の有効ビットの暗黙ネットマスク付き
(ネットマスク・フォーム 255.255.0.0 で使用されることがある)
192.168.112.0/21
サブネット 192.168.112.0/21 で、21 の有効ビットの暗黙ネットマスク付き
(また、フォーム 255.255.248.0 でも使用される)
退化の場合には、SubNet 32 の有効ビット付きは IPAddr と等価であり、SubNet ゼロの有効ビット付き (たとえば 、0.0.0.0/0) は定数 _Default_ と同じで、IP アドレスを突き合わせます。
IPAddr
IPAddr は数字 (ドット 10 進表記) 形式の完全修飾の IP アドレスを表します。通常、このアドレスはホストを表しますが、そのアドレスで接続される DNS ドメイン名がなければならないというわけではありません。
例: 192.168.123.7
注: IPAddr は DNS システムによって解決する必要がないので、apache のパフォーマンスが改善される結果となります。
また、次も参照してください。
DNS Issues
Hostname
Hostname は完全修飾 DNS ドメイン名であり、これは DNS ドメイン名サーバーを介して
1つまたは複数の IPAddrs に解決することができます。
これは論理ホストを表し ( Domain と対比して、上記を参照のこと)、少なくとも1つの IPAddr (あるいは、多くの場合、異なった IPAddr をもつホストのリストに) に解決できるものでなければなりません。
例: prep.ai.mit.edu
www.apache.org.
注: 多くの場合、DNS の検索を回避できるので、Hostname の代わりに IPAddr を指定するほうがより効率的です。ネーム・サーバーへの接続に遅い PPP リンクを使用する時には、Apache での名前の解決はかなりの時間がかかることがあります。
注: Hostname の比較は大文字小文字は考慮されずに行なわれ、Hostname は常に DNS ツリーのルート中に固定されているとみなされるので、2つのホスト WWW.MyDomain.com および www.mydomain.com. (末尾のピリオドに注意) は等しいものとみなされます。
また、次も参照してください。
DNS Issues
構文 - ProxyDomain <Domain>
コンテキスト - サーバー構成、Virtual Host状況 - 基本モジュール - mod_proxy互換性 - ProxyDomain が使用可能になるのは Apache 1.3 以上の場合だけです。
このディレクティブを使用できるのは、イントラネット内の Apache プロキシー・サーバーの場合だけです。
ProxyDomain ディレクティブは、その apache プロキシー・サーバーが属しているデフォルト・ドメインを指定します。ドメイン名なしのホストへの要求が検出された場合には、構成済みの Domain を同じホストに付加したリダイレクト応答が生成されます。
例 :
ProxyRemote * http://firewall.mycompany.com:81
NoProxy .mycompany.com 192.168.112.0/21
ProxyDomain .mycompany.com
構文 -ProxyVia {off|on|full|block }
デフォルト - ProxyVia off
コンテキスト - サーバー構成、Virtual Host状況 - 基本モジュール - mod_proxy互換性 - ProxyVia が使用可能になるのは Apache 1.3.2 以上の場合だけです。
このディレクティブは、プロキシーによる Via: HTTP ヘッダーの使用を制御します。この使用目的は、プロキシー・サーバーのチェーンにそってプロキシー要求の流れを制御することです。
Via: ヘッダー行の説明については、RFC2068 (HTTP/1.1) を参照してください。
off に設定 (これがデフォルトである) した場合には、特別な処理は行われません。要求または応答に Via: ヘッダーが含まれている場合には、それは変更されないまま移動されます。
on に設定した場合には、それぞれの要求または応答には、現行ホストに Via: ヘッダー行が追加されることになります。
full に設定した場合には、生成される各 Via: ヘッダー行には、さらに Apache server バージョンが Via: コメント・フィールドとして示されます。
block に設定した場合、すべてのプロキシー要求では、そのすべての Via: ヘッダー行が除去されます。新規の Via: ヘッダーは生成されません。
構文 - CacheForceCompletion <percentage>
コンテキスト - サーバー構成、Virtual Hostデフォルト - 90
状況 - 基本モジュール - mod_proxy互換性 - CacheForceCompletion が使用可能になるのは Apache 1.3.1 以上の場合だけです。
キャッシュに入れた http 転送を取り消した場合、指定されたパーセント以上のものがすでに転送されている場合には、プロキシー・モジュールはキャッシュへの転送を完了します。
これはパーセントであり、1 - 100 の数値であるか、あるいはデフォルトを使用するには 0 でなければなりません。100では、転送が完了できる場合にかぎり文書をキャッシュに入れることになります。60 - 90 の間の数字を推奨します。
構文 - CacheRoot <directory >
コンテキスト - サーバー構成、Virtual Host
状況 - 基本
モジュール - mod_proxy
互換性 - CacheRoot が使用可能になるのは Apache 1.1 以上の場合だけです。
ディレクトリーの名前を設定して、キャッシュ・ファイルを入れます。これは、httpd サーバーによって書き込み可能でなければなりません。(User
ディレクティブを参照してください。)
CacheRoot
を設定すると、プロキシー・キャッシュが使用可能になります。ProxyRequests
は On
に設定されているが、キャッシュが使用可能でない場合には、 CacheRoot
の定義なしで、プロキシーの機能を使用することができます。
CacheSize <size >
デフォルト - CacheSize 5
コンテキスト - サーバー構成、Virtual Host
状況 - 基本
モジュール - mod_proxy
互換性 - CacheSize が使用可能になるのは Apache 1.1 以上の場合だけです。
キャッシュに必要なスペース使用量を KB (1024 バイト単位) で設定します。この使用量がこの設定以上に増大することがあるが、この使用量がこの設定以下になるまで、ガーベッジ・コレクションがファイルを削除します。
予測されるプロキシー通信量ボリュームおよび CacheGcInterval
によっては、
使用可能なスペースの少なくとも 20 - 40 % 以下の値を使用してください。
構文 - CacheGcInterval <time >
コンテキスト - サーバー構成、Virtual Host
状況 - 基本
モジュール - mod_proxy
互換性 - CacheGcInterval が使用可能になるのは Apache 1.1 以上の場合だけです。
このキャッシュは <time> 時間ごとに検査し、スペース使用量が CacheSize で設定した容量より大きくなった場合に、ファイルを削除します。 <time> は浮動値を受け入れるので、CacheGcInterval 1.5
を使用して、キャッシュを 90 分ごとに検査することができる、ことに注意してください。(設定なしの場合には、ガーベッジ・コレクションは行われず、キャッシュは無制限に増大します。) また、CacheGcInterval
を大きくすると、ガーベッジ・コレクションの間のキャッシュのために、構成された CacheSize
を超えたスペースが余分に必要となります。
構文 - CacheMaxExpire <time >
デフォルト - CacheMaxExpire 24
コンテキスト - サーバー構成、Virtual Host
状況 - 基本
モジュール - mod_proxy
互換性 - CacheMaxExpire が使用可能になるのは Apache 1.1 以上の場合だけです。
キャッシュ可能な HTTP 文書は、起点サーバーの検査なしで多くても <time> 時間保存されます。したがって、文書は多くても <time> 時間で最新ではなくなります。文書とともに有効期間が指定されている場合でも、この制限が強制されます。
構文 - CacheLastModifiedFactor <factor >
デフォルト - CacheLastModifiedFactor 0.1
コンテキスト - サーバー構成、Virtual Host
状況 - 基本
モジュール - mod_proxy
互換性 - CacheLastModifiedFactor が使用可能になるのは Apache 1.1 以上の場合だけです。
起点 HTTP Server がその文書の有効期間を指定しなかった場合には、次の公式を使用して予測されます。
expiry-period = time-since-last-modification * <factor>
たとえば、その文書が 10 時間前に最後に変更され、<factor> が 0.1 の場合には、その有効期間は 10*0.1 = 1 時間に設定されます。
有効期間が CacheMaxExpire によって設定されたものより長い場合には、後者が優先されます。
構文 - CacheDirLevels <levels >
デフォルト - CacheDirLevels 3
コンテキスト - サーバー構成、Virtual Host
状況 - 基本
モジュール - mod_proxy
互換性 - CacheDirLevels が使用可能になるのは Apache 1.1 以上の場合だけです。
CacheDirLevels はキャッシュ中のサブディレクトリーのレベルの数を設定します。キャッシュ・データはこのディレクトリー・レベルの数で CacheRoot 下に保管されます。
構文 - CacheDirLength <length >
デフォルト - CacheDirLength 1
コンテキスト - サーバー構成、Virtual Host
状況 - 基本
モジュール - mod_proxy
互換性 - CacheDirLength が使用可能になるのは Apache 1.1 以上の場合だけです。
CacheDirLength は、プロキシー・キャッシュ・サブディレクトリー名の文字数を設定します。
構文 - CacheDefaultExpire <time >
デフォルト - CacheDefaultExpire 1
コンテキスト - サーバー構成、Virtual Host
状況 - 基本
モジュール - mod_proxy
互換性 - CacheDefaultExpire が使用可能になるのは Apache 1.1 以上の場合だけです。
有効時間をサポートしていないプロトコルを介して文書を取り出す場合には、有効時間として <time> 時間を使用してください。CacheMaxExpire では、この設定は上書き されません 。
構文 - CacheDefaultExpire <time >
デフォルト - CacheDefaultExpire 1
コンテキスト - サーバー構成、Virtual Host
状況 - 基本
モジュール - mod_proxy
互換性 - CacheDefaultExpire が使用可能になるのは Apache 1.1 以上の場合だけです。
NoCache ディレクティブはワード、ホストまたはドメイン (あるいはこれらのすべて) のリストをスペースで区切って指定します。一致するワード、ホスト、またはドメインからの HTTP および非パスワード FTP 文書は、プロキシー・サーバーによってキャッシュに入れられ ません 。また、プロキシー・モジュールは始動中にホスト名となることがあるリスト項目の IPアドレスを判別して、突き合わせテストのためにこれらをキャッシュに入れようと試みます。
例 :
NoCache joes-garage.com some-host.co.uk bullwinkle.wotsamattau.edu
'bullwinkle.wotsamattau.edu' は、IP アドレスによって参照される場合にも突き合わせされます。
また、'wotsamattau' は 'wotsamattau.edu' との突き合わせでも十分であることにも注意してください。
また、
NoCache *
はキャッシュを完全に使用不可にすることに注意してください。