1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
4 <!-- English Revision: 344971:1179272 (outdated) -->
7 Licensed to the Apache Software Foundation (ASF) under one or more
8 contributor license agreements. See the NOTICE file distributed with
9 this work for additional information regarding copyright ownership.
10 The ASF licenses this file to You under the Apache License, Version 2.0
11 (the "License"); you may not use this file except in compliance with
12 the License. You may obtain a copy of the License at
14 http://www.apache.org/licenses/LICENSE-2.0
16 Unless required by applicable law or agreed to in writing, software
17 distributed under the License is distributed on an "AS IS" BASIS,
18 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 See the License for the specific language governing permissions and
20 limitations under the License.
23 <modulesynopsis metafile="mod_proxy.xml.meta">
25 <name>mod_proxy</name>
26 <description>HTTP/1.1 プロキシ/ゲートウェイサーバ</description>
27 <status>Extension</status>
28 <sourcefile>mod_proxy.c</sourcefile>
29 <identifier>proxy_module</identifier>
32 <note type="warning"><title>警告</title>
34 >サーバを安全にする</a>まで <directive module="mod_proxy"
35 >ProxyRequests</directive> は有効にしないでください。
36 オープンプロキシサーバはあなた自身のネットワークにとっても、
37 インターネット全体にとっても危険です。</p>
40 <p>このモジュールは Apache のプロキシ/ゲートウェイ機能を実装しています。
41 <code>AJP13</code> (Apache JServe Protocol version 1.3),
42 <code>FTP</code>, <code>CONNECT</code> (SSL 用),
43 <code>HTTP/0.9</code>, <code>HTTP/1.0</code>, <code>HTTP/1.1</code>
44 のプロキシ機能を実装しています。これらのプロトコルやその他のプロトコル用の
45 プロキシ機能を持った、他のモジュールに接続するようにも設定できます。</p>
47 <p>Apache のプロキシ機能は <module>mod_proxy</module> の他に、
49 <module>mod_proxy_http</module>, <module>mod_proxy_ftp</module>,
50 <module>mod_proxy_ajp</module>, <module>mod_proxy_balancer</module>,
51 <module>mod_proxy_connect</module> です。ですから、
52 特定のプロキシの機能を使いたい場合は、<module>mod_proxy</module> <em>と</em>
53 該当するモジュールをサーバに (コンパイル時に静的に行なうか
54 <directive module="mod_so">LoadModule</directive> で動的に読み込むかして)
57 <p>これに加えて、他のモジュールによって拡張機能が提供されています。
58 キャッシュは <module>mod_cache</module> と関連モジュールで
59 提供されています。SSL/TLS で遠隔サーバに接続する機能は
60 <module>mod_ssl</module> の <code>SSLProxy*</code> ディレクティブで
61 提供されています。これらの機能を利用するためには、該当するモジュールを
62 組み込んで設定しなければなりません。</p>
64 <seealso><module>mod_cache</module></seealso>
65 <seealso><module>mod_proxy_http</module></seealso>
66 <seealso><module>mod_proxy_ftp</module></seealso>
67 <seealso><module>mod_proxy_connect</module></seealso>
68 <seealso><module>mod_proxy_balancer</module></seealso>
69 <seealso><module>mod_ssl</module></seealso>
71 <section id="forwardreverse"><title>フォワードプロキシとリバースプロキシ</title>
72 <p>Apache は<dfn>フォワード</dfn>プロキシとしても、
73 <dfn>リバース</dfn>プロキシとしても設定することができます。</p>
75 <p>通常の<dfn>フォワードプロキシ</dfn>はクライアントと
76 <em>オリジンサーバ</em> <transnote>コンテンツ生成元のサーバ</transnote>
78 オリジンサーバからコンテンツを取得する過程では、クライアントは
79 行き先としてオリジンサーバを指定しつつプロキシにリクエストを送り、
80 プロキシはオリジンサーバからコンテンツ取得のリクエストを送り、
81 コンテンツが取得できればそれをクライアントに返します。
82 クライアントが他のサイトにフォワードプロクシ経由でアクセスするには、
83 特別にそれ用の設定をしなければなりません。</p>
85 <p>フォワードプロキシの一般的な使用方法は、ファイアウォールによって
86 制限されている内部のクライアントにインターネットへのアクセスを
87 提供するものです。フォワードプロキシはネットワークの使用量を
88 減らすために (<module>mod_cache</module> で提供されている)
89 キャッシュ機能を用いることもできます。</p>
91 <p>フォワードプロキシは <directive
92 module="mod_proxy">ProxyRequests</directive> ディレクティブで
93 有効になります。フォワードプロキシでは、クライアントは本当の身元を
94 隠して任意のサイトにアクセスできるようになるため、フォワードプロキシを
95 有効にする前に、承認されたクライアントのみがプロキシにアクセスできるように
96 <a href="#access">サーバを安全にする</a>ことが重要です。</p>
98 <p>一方<dfn>リバースプロキシ</dfn>は、クライアントには普通の
99 ウェブサーバのように見えます。クライアント側に特別な設定は必要ありません。
100 クライアントはリバースプロキシの名前空間に対して通常のコンテンツへの
101 リクエストを行ないます。プロキシはリクエストをどこに送れば良いかを判定し、
102 あたかも自分自身がオリジンサーバであったかのようにクライアントに
105 <p>リバースプロキシのよくある利用方法は、インターネットユーザに
106 ファイアウォールの中にあるサーバにアクセスを与えるというものです。
107 リバースプロキシは複数のバックエンドサーバへ負荷分散をするために
108 使ったり、遅いバックエンドエンドサーバのためにキャッシュ機能を提供したり
109 するために使えます。また、リバースプロキシは複数のサーバを
110 同じ URL 空間にまとめるために使うこともできます。</p>
112 <p>リバースプロキシは <directive
113 module="mod_proxy">ProxyPass</directive> ディレクティブや
115 module="mod_rewrite">RewriteRule</directive> ディレクティブの
116 <code>[P]</code> フラグを使うことで有効になります。リバースプロキシの
118 module="mod_proxy">ProxyRequests</directive> を設定する必要は
120 </section> <!-- /forwardreverse -->
122 <section id="examples"><title>基本の例</title>
124 <p>以下の例は手始めの簡単な例です。個々のディレクティブの意味は
127 <p>またキャッシュ機能を有効にしたい場合は、<module>mod_cache</module>
130 <example><title>フォワードプロキシ</title>
131 ProxyRequests On<br />
134 <Proxy *><br />
136 Order deny,allow<br />
138 Allow from internal.example.com<br />
143 <example><title>リバースプロキシ</title>
144 ProxyRequests Off<br />
146 <Proxy *><br />
148 Order deny,allow<br />
153 ProxyPass /foo http://foo.example.com/bar<br />
154 ProxyPassReverse /foo http://foo.example.com/bar
156 </section> <!-- /examples -->
159 <section id="access"><title>プロキシへのアクセス制御</title>
160 <p>プロキシのアクセスは以下のように <directive
161 module="mod_proxy" type="section">Proxy</directive> コンテナの中に
162 ディレクティブを書くことで制御できます:</p>
165 <Proxy *><br />
167 Order Deny,Allow<br />
169 Allow from 192.168.0<br />
174 <p>アクセス制御のためのディレクティブのより詳しい情報は
175 <module>mod_authz_host</module> をお読みください。</p>
178 module="mod_proxy">ProxyRequests</directive> ディレクティブを
179 使って) フォワードプロキシを設定している場合は、厳しくアクセス
180 制限を行なうことが非常に大切です。そうしないと、任意のクライアントが
181 身元を明かすことなく任意のホストにアクセスするためにサーバを使うことが
182 できてしまいます。これはあなた自身のネットワークにとっても、インターネット
183 全体にとっても危険なことです。(<code>ProxyRequests Off</code> にして
185 module="mod_proxy">ProxyPass</directive> ディレクティブを使って)
186 リバースプロキシを使っている場合には、クライアントはあなたが明示的に
187 設定したホストにしかアクセスできないため、フォワードプロキシのとき
188 ほどアクセス制御に力を注がなくても大丈夫です。</p>
190 </section> <!-- /access -->
192 <section id="startup"><title>遅い起動</title>
193 <p><directive module="mod_proxy"
194 >ProxyBlock</directive> ディレクティブを使っている場合、
196 IP アドレスが調べられてキャッシュされます。ホスト名のルックアップの
197 速さによっては、数秒 (かそれ以上) かかるかもしれません。</p>
198 </section> <!-- /startup -->
200 <section id="intranet"><title>イントラネットプロキシ</title>
201 <p>イントラネットにある Apache プロキシサーバは外部へのリクエストを
202 会社のファイアウォールを通して送らなければなりません。(このためには
203 個々の <var>scheme</var> についてそれぞれ、ファイアウォールの
205 <directive module="mod_proxy">ProxyRemote</directive> ディレクティブを
206 設定してください)。しかしイントラネット内のリソースにアクセスするときは、
207 ファイアウォールを通さないでもアクセスできます。
208 どのホストがイントラネットに属し、直接アクセスすべきかを指定するには、
209 <directive module="mod_proxy">NoProxy</directive> ディレクティブが
212 <p>イントラネット内のユーザは WWW のリクエストでローカルドメインを
213 省略することがよくあります。<code>http://somehost.example.com/</code>
214 というリクエストの代わりに "http://somehost/" をリクエストしたりします。
215 このようなリクエストを受け付け、サーバに設定されているローカルドメインが
216 暗黙のうちに使われていると解釈して、単純にリクエストを処理するものも
219 href="#proxyrequests">プロキシのサービス用に設定されていて</a>
220 <directive module="mod_proxy">ProxyDomain</directive> ディレクティブが
221 使用された場合には、Apache はクライアントにリダイレクト応答を送って、
222 正しい、完全な (<transnote>fully qualified</transnote>)
223 サーバのアドレスに送ることができます。このように
224 リダイレクトすると、ユーザのブックマークが正しい完全なホスト名を含む
225 ことにもなるため、より好ましい方法と言えるでしょう。</p>
226 </section> <!-- /intranet -->
228 <section id="envsettings"><title>プロトコルの調整</title>
229 <p>Keepalive や HTTP/1.1 を適切に実装していないアプリケーションサーバに対して
230 <module>mod_proxy</module> がリクエストを送信する場合、
231 HTTP/1.0 を使って keepalive を無しにしてリクエストを送るようにする
232 環境変数が二つあります。これらは <directive module="mod_env"
233 >SetEnv</directive> ディレクティブで設定します。</p>
235 <p><code>force-proxy-request-1.0</code> と <code>proxy-nokeepalive</code>
239 <Location /buggyappserver/><br />
241 ProxyPass http://buggyappserver:7001/foo/<br />
242 SetEnv force-proxy-request-1.0 1<br />
243 SetEnv proxy-nokeepalive 1<br />
248 </section> <!-- /envsettings -->
250 <section id="request-bodies"><title>リクエストボディ</title>
252 <p>POST メソッドなどのリクエストには、リクエストボディがあります。
253 HTTP プロトコル仕様によると、ボディのあるリクエストは chunked
254 転送を使うか、<code>Content-Length</code>
256 このようなリクエストをオリジンサーバに送信する場合、
257 <module>mod_proxy_http</module> は常に <code>Content-Length</code>
258 を送ろうと試みます。しかし。ボディが大きく、オリジナルのリクエストで
259 chunked 転送が使われている場合、上流へのリクエストに
261 この挙動は <a href="../env.html">環境変数</a>で制御できます。
262 <code>proxy-sendcl</code> を設定すると、可能な限り常に
263 <code>Content-Length</code> を付与して、
265 逆に <code>proxy-sendchunked</code> を設定すると、リソース消費を抑え、
266 chnked エンコードを使って送信するようになります。</p>
268 </section> <!-- /request-bodies -->
271 <name>BalancerMember</name>
272 <description>Add a member to a load balancing group</description>
273 <contextlist><context>directory</context></contextlist>
274 <usage><p>Documentation not yet translated. Please see English version of document.</p></usage>
277 <directivesynopsis type="section">
279 <description>プロキシされるリソースに適用されるコンテナ</description>
280 <syntax><Proxy <var>wildcard-url</var>> ...</Proxy></syntax>
281 <contextlist><context>server config</context><context>virtual host</context>
285 <p><directive type="section">Proxy</directive> セクション中の
286 ディレクティブはマッチするプロキシされるコンテンツにのみ適用されます。
287 シェル形式のワイルドカードが使えます。</p>
289 <p>例えば、次の設定は <code>yournetwork.example.com</code> の
290 ホストにのみプロキシサーバを経由したアクセスを許可します:</p>
293 <Proxy *><br />
295 Order Deny,Allow<br />
297 Allow from yournetwork.example.com<br />
302 <p>次の例は <code>example.com</code> の <code>foo</code> ディレクトリの
303 すべてのファイルに対して、プロキシサーバを通して送られたときには
304 <code>INCLUDES</code> フィルタを通して送るように設定します:</p>
307 <Proxy http://example.com/foo/*><br />
309 SetOutputFilter INCLUDES<br />
319 <name>ProxyBadHeader</name>
320 <description>応答におかしなヘッダがある場合の扱い方を決める</description>
321 <syntax>ProxyBadHeader IsError|Ignore|StartBody</syntax>
322 <default>ProxyBadHeader IsError</default>
323 <contextlist><context>server config</context><context>virtual host</context>
325 <compatibility>2.0.44 以降</compatibility>
328 <p><directive>ProxyBadHeader</directive> ディレクティブは構文的に
329 間違ったヘッダ (<em>つまり</em> コロンを含まないもの) を受け取ったときに
330 <module>mod_proxy</module> がどう振る舞うかを決めます。以下の引数を
334 <dt><code>IsError</code></dt>
335 <dd>リクエストを中止して 502 (Bad Gateway) 応答を返す。
338 <dt><code>Ignore</code></dt>
339 <dd>間違ったヘッダ行をそもそも存在しなかったものとして扱う。</dd>
341 <dt><code>StartBody</code></dt>
342 <dd>間違ったヘッダ行を受け取ったら、ヘッダの読み込みを終了して、
343 それ以降の残りをボディとして扱う。これはヘッダとボディの間に空行を入れ忘れて
344 しまっているような、きちんと動作していないバックエンドサーバがあるときに、
345 問題を回避するのに役に立ちます。</dd>
350 <directivesynopsis type="section">
351 <name>ProxyMatch</name>
352 <description>正規表現でのマッチによるプロキシリソース用のディレクティブコンテナ</description>
353 <syntax><ProxyMatch <var>regex</var>> ...</ProxyMatch></syntax>
354 <contextlist><context>server config</context><context>virtual host</context>
358 <p><directive type="section">ProxyMatch</directive> は URL のマッチに
359 <glossary ref="regex">正規表現</glossary> を用いることを除いて
360 <directive type="section">Proxy</directive> ディレクティブと同じです。</p>
365 <name>ProxyPreserveHost</name>
366 <description>プロキシリクエストに、受け付けた Host HTTP ヘッダを使う</description>
367 <syntax>ProxyPreserveHost On|Off</syntax>
368 <default>ProxyPreserveHost Off</default>
369 <contextlist><context>server config</context><context>virtual host</context>
371 <compatibility>Apache 2.0.31 以降で使用可能</compatibility>
374 <p>このオプションが有効になっている場合、<directive>ProxyPass</directive>
375 で指定したホスト名の代わりに、受け付けたリクエストの Host: 行を
378 <p>このオプションは通常は <code>Off</code> に設定してください。
379 ほとんどの場合、これは大量の名前ベースのバーチャルホスティングを行なっていて、
380 元々の Host ヘッダをバックエンドサーバが解釈する必要のあるときのような、
381 特別な設定が必要な場合にのみ有用です。</p>
386 <name>ProxyRequests</name>
387 <description>フォワード (標準の) プロキシリクエストを有効にする</description>
388 <syntax>ProxyRequests On|Off</syntax>
389 <default>ProxyRequests Off</default>
390 <contextlist><context>server config</context><context>virtual host</context>
394 <p>これは Apache のフォワードプロキシサーバとしての動作を
395 有効もしくは無効にします。(ProxyRequests を <code>Off</code> に
396 設定しても、<directive module="mod_proxy">ProxyPass</directive>
399 <p>通常のリバースプロキシの設定では、このオプションは <code>Off</code>
402 <p>HTTP や FTP サイトへのプロキシの機能を有効にしたい場合は、
403 <module>mod_proxy_http</module> や <module>mod_proxy_ftp</module> が
404 サーバに組み込まれていなければなりません。</p>
406 <note type="warning"><title>警告</title>
408 >サーバを安全にする</a>まで <directive module="mod_proxy"
409 >ProxyRequests</directive> は有効にしないでください。
410 オープンプロキシサーバはあなた自身のネットワークにとっても、
411 インターネット全体にとっても危険です。</p>
417 <name>ProxyRemote</name>
418 <description>特定のリクエストを扱う時に使われるリモートプロキシを指定する</description>
419 <syntax>ProxyRemote <var>match</var> <var>remote-server</var></syntax>
420 <contextlist><context>server config</context><context>virtual host</context>
424 <p>このディレクティブはこのプロキシに対するリモートプロキシを定義します。
425 <var>match</var> はリモートサーバがサポートする URL スキーム、
426 リモートサーバが使うはずの URL の一部分、サーバがすべての
427 リクエストに使われることを示す <code>*</code> のどれかになります。
428 <var>remote-server</var> はリモートサーバの部分 URL です。構文:</p>
431 <dfn>remote-server</dfn> =
432 <var>scheme</var>://<var>hostname</var>[:<var>port</var>]
435 <p><var>scheme</var> は実際上リモートサーバとの通信に使われるプロトコルを
436 決定します。このモジュールでは <code>http</code> だけがサポートされて
439 <example><title>例</title>
440 ProxyRemote http://goodguys.com/ http://mirrorguys.com:8000<br />
441 ProxyRemote * http://cleversite.com<br />
442 ProxyRemote ftp http://ftpproxy.mydomain.com:8080
445 <p>この例では、プロキシは FTP リクエストを別の HTTP リクエストで包んで
446 そのようなリクエストを扱える別のプロキシに転送します。</p>
448 <p>このオプションはリバースプロキシの設定もサポートします。
449 サーバが別のフォワードプロキシの後ろに隠されている場合でも
450 バックエンドウェブサーバをバーチャルホストの URL 空間に入れることが
456 <name>ProxyRemoteMatch</name>
457 <description>正規表現でのマッチによるリクエストを扱うリモートプロキシの指定</description>
458 <syntax>ProxyRemoteMatch <var>regex</var> <var>remote-server</var></syntax>
459 <contextlist><context>server config</context><context>virtual host</context>
463 <p><directive>ProxyRemoteMatch</directive> は最初の引数がリクエストされた
464 URL にマッチする<glossary ref="regex">正規表現</glossary>であることを除けば <directive
465 module="mod_proxy">ProxyRemote</directive> ディレクティブと同じです。</p>
470 <name>ProxySet</name>
471 <description>Set various Proxy balancer or member parameters</description>
472 <contextlist><context>directory</context></contextlist>
473 <usage><p>Documentation not yet translated. Please see English version of document.</p></usage>
477 <name>ProxyStatus</name>
478 <description>Show Proxy LoadBalancer status in mod_status</description>
479 <contextlist><context>server config</context><context>virtual host</context></contextlist>
480 <usage><p>Documentation not yet translated. Please see English version of document.</p></usage>
484 <name>ProxyPass</name>
485 <description>リモートサーバをローカルサーバの URL 空間にマップする</description>
486 <syntax>ProxyPass [<var>path</var>] !|<var>url</var> [<var>key=value</var> <var>key=value</var> ...]]</syntax>
487 <contextlist><context>server config</context><context>virtual host</context>
488 <context>directory</context>
492 <p>このディレクティブはリモートサーバをローカルサーバの名前空間に
493 マップできるようにします。ローカルサーバは通常の意味でのプロキシと
494 しては動作せず、リモートサーバのミラーとして振る舞います。
495 <var>path</var> はローカルの仮想パスの名前です。<var>url</var> は
496 リモートサーバの部分 URL になり、クエリー文字列を含むことはできません。</p>
498 <note type="warning"><directive>ProxyPass</directive> ディレクティブを
500 module="mod_proxy">ProxyRequests</directive> ディレクティブは通常は
501 <strong>off</strong> に設定されているべきです。</note>
503 <p>ローカルサーバのアドレスが <code>http://example.com/</code> であると
507 ProxyPass /mirror/foo/ http://backend.example.com/
510 <p>と設定すると <code>http://example.com/mirror/foo/bar</code> への
511 リクエストが内部的に <code>http://backend.example.com/bar</code> への
512 プロキシリクエストに変換されることになります。</p>
514 <p>サブディレクトリをリバースプロキシしたくないときに <code>!</code> は
515 役に立ちます。<em>例えば</em>、</p>
518 ProxyPass /mirror/foo/i !<br />
519 ProxyPass /mirror/foo http://backend.example.com
522 <p>は <code>/mirror/foo/i</code> を<em>除く</em>
523 <code>/mirror/foo</code> へのすべてのリクエストを
524 <code>backend.example.com</code> にプロキシします。</p>
526 <note><title>注</title>
527 <p>順番は重要です。一般的な <directive>ProxyPass</directive>
529 除外ディレクティブを置く必要があります。</p>
532 <p>2.1 の機能で、バックエンドサーバとの接続にプールされたコネクションを
533 使えるようになりました。<code>key=value</code> 形式のパラメータで
534 このコネクションプーリングの調整ができます。<code>Hard Maximum</code>
535 のデフォルト値は、有効になっている MPM でのプロセス当たりのスレッド数と
536 同じ数のコネクション数です。prefork MPM では通常は 1 で、worker MPM では
537 <directive>ThreadsPerChild</directive> で調整されます。</p>
539 <p><code>min</code> の設定で、バックエンドサーバとの間に何本のコネクションを
540 常時開くかが決まります。Soft Maximum <code>smax</code> の数に
541 達するまで必要に応じてコネクションは生成されます。<code>smax</code>
542 を超えた数のコネクションは、生存時間 <code>ttl</code> で切断されます。
543 バックエンドサーバと Hard Maximum <code>max</code> の数以上のコネクションを
547 ProxyPass /example http://backend.example.com smax=5 max=20 ttl=120 retry=300
557 常に開いているコネクション数の最小値</td></tr>
560 <td>バックエンドサーバとの接続数の Hard Maximum
561 <transnote>ハードリミット</transnote>。
562 デフォルト値は、使用している MPM のプロセスあたりのスレッド数になっています。
563 Prefork MPM では常に 1 で、Worker MPM では <directive>ThreadsPerChild</directive>
564 で調節できます。Hard Maximum 以上にバックエンドサーバとのコネクションを
565 生成することはありません。</td></tr>
568 <td>接続数の Soft Maximum <transnote>ソフトリミット</transnote>まで、
570 <code>smax</code> を超えた数のコネクションは生存時間 <code>ttl</code>
575 <td><code>smax</code> 数を超えた非活動状態のコネクションの生存時間を、
576 秒で指定します。この期間内に使用されなかったコネクションは、
580 <td><directive>Timeout</directive></td>
581 <td>コネクションタイムアウトを秒で指定します。特に指定されなければ、
582 フリーなコネクションを取得できるまで待ちます。このディレクティブは
583 <code>max</code> パラメータと合わせて使うことで、バックエンドサーバとの
588 <td>設定すると、コネクションプールからフリーのコネクションを取得するために
589 待機する待ち時間の最大値になります。フリーのコネクションがプールになかった場合は、
590 <code>SERVER_BUSY</code> ステータスがクライアントに返されます。
592 <tr><td>keepalive</td>
594 <td>バックエンドサーバと Apache の間にファイアーウォールがある場合には、
595 このパラメータを使ってください。ファイアウォールは往々にして、
596 非活動状態のコネクションを落とそうとします。
597 このフラグは OS に指示して、<code>KEEP_ALIVE</code> メッセージを非活動状態の
598 コネクションでも送るようにします (間隔は OS のグローバル設定に依存し、
599 通常は 120ms 間隔) 。これによってファイアウォールによってコネクションが
600 落とされることを防げます。keepalive を有効にするには、このプロパティを
601 <code>On</code> にしてください。
605 <td>コネクションをプーリングするための、リトライのタイムアウトを秒で
606 指定します。バックエンドサーバへのコネクションプーリングが失敗した場合は、
607 タイムアウトの期間が過ぎるまで、そのサーバにリクエストをフォワードしません。
608 この機能を使うと、バックエンドサーバをメンテナンスのためにシャットダウンし、
609 後でオンラインに復帰させるといったことができます。
611 <tr><td>loadfactor</td>
613 <td>ワーカーあたりの負荷係数です。BalancerMember で使います。
614 1 から 100 までの数字でそのワーカーに対する正規化された負荷率を指定します。
618 <td>ロードバランサで使った場合、ワーカーのルーティングをします。
619 ルートはセッション ID に付加された値になります。
621 <tr><td>redirect</td>
623 <td>ワーカーのリダイレクション経路です。この値は通常は、
624 安全にクラスタからノードを取り去る設定を動的に入れるために使います。
625 セッション ID の無いリクエスト全てを指定した場合は、
627 BalancerMember にリダイレクトされます。
632 <p>Proxy ディレクティブのスキームが <code>balancer://</code> になっている場合は、
633 バックエンドサーバと実際には通信しない仮想ワーカーが生成されます。
634 このワーカーは幾つかの "本物の" ワーカーの管理をつかさどります。
635 この場合パラメータは、この仮想ワーカーに対して設定されます。
641 <tr><td>lbmethod</td>
643 <td>Balancer のロードバランス方法。使用するロードバランスの
644 スケジューリング方法を選びます。処理したリクエストの数で重み付けする
645 <code>byrequests</code> か、転送量のバイト数で重み付けする
646 <code>bytraffic</code> を設定できます。デフォルトは
647 <code>byrequests</code> です。
649 <tr><td>stickysession</td>
651 <td>バランサーのスティッキーセッション名です。通常はこの値は <code>JSESSIONID</code>
652 や <code>PHPSESSIONID</code> といったものになりますが、この値は
653 バックエンドアプリケーションのサポートするセッションに依存します。
655 <tr><td>nofailover</td>
657 <td><code>On</code> になっていると、ワーカーがエラーを起こしたり
658 無効になっている場合にセッションが切れます。
659 バックエンドサーバがセッションレプリケーションをサポートしていない場合は、
664 <td>バランサーのタイムアウトを秒で指定します。
665 この値を設定すると、フリーのワーカーを取得するまでの最大待機時間になります。
668 <tr><td>maxattempts</td>
670 <td>フェイルオーバーを試みる最大の回数を指定します。
675 ProxyPass /special-area http://special.example.com/ smax=5 max=10<br />
676 ProxyPass / balancer://mycluster stickysession=jsessionid nofailover=On<br />
677 <Proxy balancer://mycluster><br />
679 BalancerMember http://1.2.3.4:8009<br />
680 BalancerMember http://1.2.3.5:8009 smax=10<br />
681 # Less powerful server, don't send as many requests there<br />
682 BalancerMember http://1.2.3.6:8009 smax=1 loadfactor=20<br />
687 <p><directive type="section" module="core"
688 >Location</directive> セクションの中で使われた場合、最初の引数は
689 省略され、ローカルディレクトリは <directive type="section" module="core"
690 >Location</directive> から取得されます。</p>
692 <p>より柔軟なリバースプロキシの設定が必要な場合は、<code>[P]</code>
693 フラグ付きの <directive module="mod_rewrite">RewriteRule</directive>
694 ディレクティブを参照してください。</p>
699 <name>ProxyPassInterpolateEnv</name>
700 <description>Enable Environment Variable interpolation in Reverse Proxy configurations</description>
701 <contextlist><context>server config</context><context>virtual host</context><context>directory</context></contextlist>
702 <usage><p>Documentation not yet translated. Please see English version of document.</p></usage>
706 <name>ProxyPassMatch</name>
707 <description>Maps remote servers into the local server URL-space using regular expressions</description>
708 <contextlist><context>server config</context><context>virtual host</context><context>directory</context></contextlist>
709 <usage><p>Documentation not yet translated. Please see English version of document.</p></usage>
713 <name>ProxyPassReverse</name>
714 <description>リバースプロキシされたサーバから送られた HTTP 応答ヘッダの
715 URL を調整する</description>
716 <syntax>ProxyPassReverse [<var>path</var>] <var>url</var></syntax>
717 <contextlist><context>server config</context><context>virtual host</context>
718 <context>directory</context>
722 <p>このディレクティブは Apache に HTTP リダイレクト応答の
723 <code>Location</code>, <code>Content-Location</code>, <code>URI</code>
724 ヘッダの調整をさせます。これは、Apache がリバースプロキシとして使われている
725 ときに、リバースプロキシを通さないでアクセスすることを防ぐために
726 重要です。これによりバックエンドサーバの HTTP リダイレクトが
727 リバースプロキシとバックエンドの間で扱われるようになります。</p>
729 <p>ディレクティブで明示されている HTTP 応答ヘッダのみが書き換えられます。
730 Apache は他の応答ヘッダを書き換えたり、HTML ページの中の URL 参照を
731 書き換えたりすることはありません。HTML の中を見て、URL 参照を書き換える
732 モジュールに Nick Kew さんの <a
733 href="http://apache.webthing.com/mod_proxy_html/"
734 >mod_proxy_html</a> があります。</p>
736 <p><var>path</var> はローカル仮想パスの名前です。<var>url</var> は
737 リモートサーバの部分 URL です。これらは <directive module="mod_proxy"
738 >ProxyPass</directive> ディレクティブと同様です。</p>
740 <p>例えば、ローカルサーバのアドレスが <code>http://example.com/</code>
744 ProxyPass /mirror/foo/ http://backend.example.com/<br />
745 ProxyPassReverse /mirror/foo/ http://backend.example.com/<br />
746 ProxyPassReverseCookieDomain backend.example.com public.example.com<br />
747 ProxyPassReverseCookiePath / /mirror/foo/
750 <p>という設定をすると、<code>http://example.com/mirror/foo/bar</code>
751 へのローカルリクエストが <code>http://backend.example.com/bar</code>
752 へのプロキシリクエストに内部でリダイレクトされるだけではありません
753 (これは <code>ProxyPass</code> の機能です)。<code>backend.example.com</code>
754 が送るリダイレクトの面倒もみます。<code>http://backend.example.com/bar</code>
755 が <code>http://backend.example.com/quux</code> にリダイレクトされたとき、
756 Apache は HTTP リダイレクト応答をクライアントに送る前に、
757 <code>http://example.com/mirror/foo/quux</code> に変更します。
758 URL を構成するのに使われるホスト名は <directive
759 module="core">UseCanonicalName</directive> の設定に応じて選択されることに
762 <p><directive>ProxyPassReverse</directive> ディレクティブは
763 対応する <directive module="mod_proxy"
764 >ProxyPass</directive> ディレクティブには依存しないため、
765 <module>mod_rewrite</module> のプロキシ通過機能
766 (<code>RewriteRule ... [P]</code>) と併せて使用することができます。</p>
768 <p><directive type="section" module="core"
769 >Location</directive> セクションの中で使われた場合は、
770 最初の引数は省略され、ローカルディレクトリは <directive
771 type="section" module="core">Location</directive> から取得されます。</p>
776 <name>ProxyPassReverseCookieDomain</name>
777 <description>リバースプロキシサーバからの Set-Cookie ヘッダの Domain 文字列を
779 <syntax>ProxyPassReverseCookieDomain <var>internal-domain</var> <var>public-domain</var></syntax>
780 <contextlist><context>server config</context><context>virtual host</context>
781 <context>directory</context>
785 <directive module="mod_proxy">ProxyPassReverse</directive> と同じですが、
786 ヘッダの URL の代わりに <code>Set-Cookie</code> ヘッダの
787 <code>domain</code> 文字列を書き換えます。</p>
792 <name>ProxyPassReverseCookiePath</name>
793 <description>Reverse プロキシサーバからの Set-Cookie ヘッダの Path 文字列を
795 <syntax>ProxyPassReverseCookiePath <var>internal-path</var> <var>public-path</var></syntax>
796 <contextlist><context>server config</context><context>virtual host</context>
797 <context>directory</context>
801 <directive module="mod_proxy">ProxyPassReverse</directive> と同じですが、
802 ヘッダの URL の代わりに <code>Set-Cookie</code> ヘッダの
803 <code>path</code> 文字列を書き換えます。</p>
809 <name>AllowCONNECT</name>
810 <description>プロキシを経由して、どのポートに <code>CONNECT</code>
811 できるかを指定する</description>
812 <syntax>AllowCONNECT <var>port</var> [<var>port</var>] ...</syntax>
813 <default>AllowCONNECT 443 563</default>
814 <contextlist><context>server config</context><context>virtual host</context>
818 <p><directive>AllowCONNECT</directive> はプロキシの <code>CONNECT</code>
819 メソッドが接続を許可するポート番号のリストを指定します。
820 今日のブラウザは、<code>https</code> コネクションが要求されていて、
821 HTTP 上でのプロキシによるトンネリングができるときに、
824 <p>デフォルトの設定では、https のデフォルトポート (<code>443</code>) と
825 デフォルトの snews ポート (<code>563</code>) が有効になっています。
826 このデフォルトを上書きして、リストに記載したポートにのみ接続を許可したい場合、
827 <directive>AllowCONNECT</directive> ディレクティブを使用します。</p>
829 <p><code>CONNECT</code> を使用するには、<module>mod_proxy_connect</module>
830 がサーバに組み込まれていなければならないことに注意してください。</p>
835 <name>ProxyBlock</name>
836 <description>プロキシ接続を禁止する語句、ホスト名、ドメインを指定する</description>
837 <syntax>ProxyBlock *|<var>word</var>|<var>host</var>|<var>domain</var>
838 [<var>word</var>|<var>host</var>|<var>domain</var>] ...</syntax>
839 <contextlist><context>server config</context><context>virtual host</context>
843 <p><directive>ProxyBlock</directive> ディレクティブは空白で区切られた
844 語句、ホスト名、ドメインのリストを指定します。サイト名にその語句、ホスト名、
845 ドメインを含むサイトへの HTTP、HTTPS、FTP によるドキュメントのリクエストは
846 プロキシサーバにより<em>ブロックされます</em>。プロキシモジュールは
847 起動時にホスト名と思しき項目の IP アドレスを調べ、後のテストのために
848 キャッシュします。これにより、サーバの起動が少し遅くなるかもしれません。</p>
850 <example><title>Example</title>
851 ProxyBlock joes-garage.com some-host.co.uk rocky.wotsamattau.edu
854 <p><code>rocky.wotsamattau.edu</code> が IP アドレスで参照されたときでも
857 <p><code>wotsamattau.edu</code> のマッチには <code>wotsamattau</code>
864 <p>はすべてのサイトへの接続をブロックすることに注意してください。</p>
869 <name>ProxyReceiveBufferSize</name>
870 <description>プロキシされる HTTP と FTP 接続のためのネットワークバッファサイズ</description>
871 <syntax>ProxyReceiveBufferSize <var>bytes</var></syntax>
872 <default>ProxyReceiveBufferSize 0</default>
873 <contextlist><context>server config</context><context>virtual host</context>
877 <p><directive>ProxyReceiveBufferSize</directive> ディレクティブは
878 スループットを上げるために明示的に (TCP/IP) ネットワークバッファのサイズを
879 設定します。値は <code>512</code> 以上か、システムのデフォルトのバッファ
880 サイズを意味する <code>0</code> でなければなりません。</p>
882 <example><title>例</title>
883 ProxyReceiveBufferSize 2048
889 <name>ProxyIOBufferSize</name>
890 <description>内部データスループットバッファのサイズを決定する</description>
891 <syntax>ProxyIOBufferSize <var>bytes</var></syntax>
892 <default>ProxyIOBufferSize 8192</default>
893 <contextlist><context>server config</context><context>virtual host</context>
897 <p><directive>ProxyIOBufferSize</directive> ディレクティブは入力と
898 出力用の一時メモリとして使われる内部バッファのサイズを調整します。
899 サイズは <code>8192</code> 以下でなければなりません。</p>
901 <p>ほとんどすべての場合、この値を変更する理由はありません。</p>
906 <name>ProxyMaxForwards</name>
907 <description>リクエストがフォワードされるプロキシの最大数</description>
908 <syntax>ProxyMaxForwards <var>number</var></syntax>
909 <default>ProxyMaxForwards 10</default>
910 <contextlist><context>server config</context><context>virtual host</context>
912 <compatibility>Apache 2.0 以降で使用可能</compatibility>
915 <p><directive>ProxyMaxForwards</directive> ディレクティブは
916 リクエストに <code>Max-Forwards</code> ヘッダが指定されていない場合に
917 リクエストが通過可能なプロキシの最大数を設定します。これは
918 プロキシの無限ループや DoS 攻撃を防ぐために設定されています。</p>
920 <example><title>例</title>
928 <description>直接接続する ホスト、ドメイン、ネットワーク</description>
929 <syntax>NoProxy <var>host</var> [<var>host</var>] ...</syntax>
930 <contextlist><context>server config</context><context>virtual host</context>
934 <p>このディレクティブはイントラネット中の Apache プロキシサーバにのみ
935 有用です。<directive>NoProxy</directive> ディレクティブは空白区切りで、
936 サブネット、IP アドレス、ホスト、ドメインのリストを指定します。
937 これらのどれかにマッチするホストへのリクエストは <directive
938 module="mod_proxy">ProxyRemote</directive> で設定されたプロキシサーバに
939 フォワードされず、直接処理されます。</p>
941 <example><title>例</title>
942 ProxyRemote * http://firewall.mycompany.com:81<br />
943 NoProxy .mycompany.com 192.168.112.0/21
946 <p><directive>NoProxy</directive> ディレクティブの <var>host</var> 引数は
950 <!-- ===================== Domain ======================= -->
951 <dt><var><a name="domain" id="domain">Domain</a></var></dt>
953 <p><dfn>Domain</dfn> は先頭にピリオドの着いた部分 DNS ドメイン名です。
954 同一 DNS ドメイン及びゾーン (<em>すなわち</em>、ホスト名の末尾がすべて
955 <var>Domain</var> で終わっているということ) に属するホストのリストを
958 <example><title>例</title>
962 <p><var>Domain</var> を <a href="#hostname"
963 >Hostname</a> と区別するために (意味的にも構文的にも。DNS ドメインも
964 DNS の A レコードを持つことができるのです!)、<var>Domain</var> は
967 <note><title>注</title>
968 <p>ドメイン名の比較は大文字小文字を区別せずに行なわれ、<var>Domain</var>
969 は常に DNS ツリーのルートから始まるものとみなされます。ですから、
970 次の二つのドメイン <code>.MyDomain.com</code> と
971 <code>.mydomain.com.</code> (最後のピリオドに注目) は同一であると
972 みなされます。ドメインの比較は DNS ルックアップなしで行なわれるため、
973 サブネットの比較よりもずっと効率的です。</p>
976 <!-- ===================== SubNet ======================= -->
977 <dt><var><a name="subnet" id="subnet">SubNet</a></var></dt>
979 <p><dfn>SubNet</dfn> は数値形式 (ドットで区切られた四つの数字) の
980 部分インターネットアドレスです。後にスラッシュと <var>Subnet</var>
981 の意味のあるビット数を指定するネットマスクとを続けることができます。
982 共通のネットワークインタフェースを使って到達することのできるサブネットを
983 表すために使われます。明示的にネットマスクを指定しない場合は
984 最後の省略された (もしくは値が 0 の) 数字がマスクを指定します。
985 (この場合は、ネットマスクは 8 ビット単位でしか指定できません。)
989 <dt><code>192.168</code> もしくは <code>192.168.0.0</code></dt>
990 <dd>サブネット 192.168.0.0 と暗黙の 16 ビット有効なネットマスク
991 (<code>255.255.0.0</code> というネットマスクの形式で使われることも
993 <dt><code>192.168.112.0/21</code></dt>
994 <dd>サブネット<code>192.168.112.0/21</code> と 21 ビット有効な
995 ネットマスク (<code>255.255.248.0</code> という形式で使われることも
999 <p>特別な場合に、32 ビット有効な <em>SubNet</em> は
1000 <var><a href="#ipadr">IPAddr</a></var> と同等で、
1001 0 ビット有効な <var>SubNet</var> (<em>例えば</em>、0.0.0.0/0) は
1002 すべての IP アドレスにマッチする定数 <var>_Default_</var> と同じです。</p>
1005 <!-- ===================== IPAddr ======================= -->
1006 <dt><var><a name="ipaddr" id="ipaddr">IPAddr</a></var></dt>
1008 <p><dfn>IPAddr</dfn> は数値形式 (ドットで区切られた四つの数字) の
1009 完全インターネットアドレスです。通常はこのアドレスはホストを
1010 表しますが、必ずしもアドレスに対応する DNS ドメイン名があるわけでは
1013 <example><title>例</title>
1017 <note><title>注</title>
1018 <p><var>IPAddr</var> は DNS システムにより解決される必要がないので、
1019 apache の性能が向上するかもしれません。</p>
1022 <!-- ===================== Hostname ======================= -->
1023 <dt><var><a name="hostname" id="hostname">Hostname</a></var></dt>
1025 <p><dfn>Hostname</dfn> は DNS ドメインサービスにより一つもしくは
1026 複数の <var><a href="#ipaddr">IPAddr</a></var> に解決可能な
1027 完全な DNS ドメイン名です。これは (<var><a href="#domain">Domain</a></var>
1028 と違って、説明は上記を参照) 論理的なホストを表し、少くとも一つの
1029 <var><a href="#ipaddr">IPAddr</a></var> (もしくは違う
1030 <var><a href="#ipaddr">IPAddr</a></var> のホストのリスト) に解決
1033 <example><title>例</title>
1034 prep.ai.mit.edu<br />
1038 <note><title>注</title>
1039 <p>多くの場合、<var>Hostname</var> の代わりに <var><a
1040 href="#ipaddr">IPAddr</a></var> を指定した方が、DNS ルックアップを
1041 避けることができるため、効率が良くなります。Apache の名前解決は
1042 ネームサーバへの接続が遅い PPP 上の場合などにかなり時間を取られる
1044 <p><var>Hostname</var> の比較は大文字小文字を区別せずに行なわれ、
1045 <var>Hostname</var> は常に DNS ツリーのルートから始まるものとみなされます。
1046 ですから、二つのドメイン <code>WWW.MyDomain.com</code> と
1047 <code>www.mydomain.com.</code> (最後のピリオドに注目) は同一であると
1052 <seealso><a href="../dns-caveats.html">DNS に関する問題</a></seealso>
1053 </directivesynopsis>
1056 <name>ProxyTimeout</name>
1057 <description>プロキシされたリクエストのネットワークタイムアウト</description>
1058 <syntax>ProxyTimeout <var>seconds</var></syntax>
1059 <default>ProxyTimeout 300</default>
1060 <contextlist><context>server config</context><context>virtual host</context>
1062 <compatibility>Apache 2.0.31 以降で使用可能</compatibility>
1065 <p>このディレクティブはユーザがプロキシリクエストのタイムアウトを
1066 指定できるようにします。これはハングしてしまう遅い、もしくは挙動の
1067 怪しいサーバがあり、サーバがデータを返すまでひたすら待ち続けるよりも
1068 タイムアウトを返してより緩やかに<transnote>graceful に</transnote>
1069 失敗させたい場合に役に立ちます。</p>
1071 </directivesynopsis>
1074 <name>ProxyDomain</name>
1075 <description>プロキシされたリクエストのデフォルトのドメイン名</description>
1076 <syntax>ProxyDomain <var>Domain</var></syntax>
1077 <contextlist><context>server config</context><context>virtual host</context>
1081 <p>このディレクティブはイントラネット内の Apache プロキシサーバにのみ
1082 有用です。<directive>ProxyDomain</directive> ディレクティブは
1083 apache プロキシサーバが属するデフォルトのドメインを指定します。
1084 ドメイン名の無いリクエストを受けた場合、設定された <var>Domain</var>
1085 が追加された同じホストへのリダイレクト応答が返されます。</p>
1087 <example><title>例</title>
1088 ProxyRemote * http://firewall.mycompany.com:81<br />
1089 NoProxy .mycompany.com 192.168.112.0/21<br />
1090 ProxyDomain .mycompany.com
1093 </directivesynopsis>
1096 <name>ProxyVia</name>
1097 <description>プロキシされたリクエストの <code>Via</code> HTTP 応答ヘッダ
1098 により提供される情報</description>
1099 <syntax>ProxyVia On|Off|Full|Block</syntax>
1100 <default>ProxyVia Off</default>
1101 <contextlist><context>server config</context><context>virtual host</context>
1105 <p>このディレクティブはプロキシの <code>Via:</code> HTTP ヘッダの使用を
1106 制御します。想定されている使い方は、プロキシサーバがいくつも繋がっているときに
1107 プロキシリクエストの流れを制御することです。<code>Via:</code> ヘッダ行の
1109 href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> (HTTP/1.1)
1110 の 14.45 節を読んでください。</p>
1113 <li>デフォルトの <code>Off</code> に設定されていると、特別な処理は
1114 行なわれません。リクエストやリプライに <code>Via:</code> ヘッダがあれば、
1115 変更されずにそのまま渡します。</li>
1117 <li><code>On</code> に設定されていれば、各リクエストとリプライに
1118 <code>Via:</code> 行が追加されます。</li>
1120 <li><code>Full</code> に設定されていれば、<code>Via:</code> ヘッダは
1121 コメント部分に Apache サーバのバージョンも含むようになります。</li>
1123 <li><code>Block</code> に設定されていれば、すべてのプロキシリクエストから
1124 <code>Via:</code> ヘッダが取り除かれます。新たに <code>Via:</code> が
1128 </directivesynopsis>
1131 <name>ProxyErrorOverride</name>
1132 <description>プロキシされたコンテンツのエラーページを上書きする</description>
1133 <syntax>ProxyErrorOverride On|Off</syntax>
1134 <default>ProxyErrorOverride Off</default>
1135 <contextlist><context>server config</context><context>virtual host</context>
1137 <compatibility>バージョン 2.0 以降で使用可能</compatibility>
1140 <p>このディレクティブはリバースプロキシを使用していて、
1141 エンドユーザに送られるエラーページの外見を共通のものにしたいときに
1142 有用です。このディレクティブは (<module>mod_include</module> の SSI によって)
1143 インクルードされたファイルがエラーコードを取得して、正しく動作を
1144 するようにもします (デフォルトの動作は、プロキシされたサーバの
1145 エラーページの表示で、このディレクティブを有効にすると SSI のエラー
1148 </directivesynopsis>