switch to a 60 bit hash
[httpd-crcsyncproxy.git] / docs / manual / mod / mod_cache.xml.ja
blob60a54fcbd3aa25bd6fcc193db12d3471d0db80c8
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: 504183:729317 (outdated) -->
6 <!--
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.
21 -->
23 <modulesynopsis metafile="mod_cache.xml.meta">
25 <name>mod_cache</name>
26 <description>URI をキーにしたコンテンツのキャッシュ</description>
27 <status>Extension</status>
28 <sourcefile>mod_cache.c</sourcefile>
29 <identifier>cache_module</identifier>
31 <summary>
32 <note type="warning">このモジュールは <directive
33 module="mod_authz_host">Allow</directive><directive
34 module="mod_authz_host">Deny</directive> ディレクティブを無視しますので、
35 注意して使って下さい。クライアントのホスト名、アドレスや環境変数を使って
36 アクセスを制限したいコンテンツに対してはキャッシュ機能を有効にするべきではありません。
37 </note>
39 <p><module>mod_cache</module> はローカルのコンテンツやプロキシされた
40 コンテンツをキャッシュするために使われる <a
41 href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> 準拠の
42 HTTP コンテンツキャッシュを実装しています。<module>mod_cache</module>
43 の動作にはストレージを管理するモジュールが必要です。標準
44 Apache 配布には二つストレージ管理モジュールが含まれています:</p>
46 <dl>
47 <dt><module>mod_disk_cache</module></dt>
48 <dd>ディスクを使用したストレージ管理機構を実装しています。</dd>
50 <dt><module>mod_mem_cache</module></dt>
51 <dd>メモリを使用したストレージ管理機構を実装しています。
52 <module>mod_mem_cache</module> は次の二つのモードのどちらかで動作する
53 ように設定できます: オープンされているファイル記述子をキャッシュするモードか、
54 ヒープ上でのオブジェクトの自体をキャッシュをするモードです。
55 <module>mod_mem_cache</module> はローカルで生成されるコンテンツや、
56 <module>mod_proxy</module>
57 <directive module="mod_proxy">ProxyPass</directive> を使って設定されている
58 ときの (つまり<dfn>リバースプロキシ</dfn> での) バックエンドサーバの
59 コンテンツをキャッシュするのに使えます。</dd>
60 </dl>
62 <p>コンテンツのキャッシュへの保存と取得は URI に基づいたキーが使われます。
63 アクセス保護のかけられているコンテンツはキャッシュされません。</p>
64 <p>より詳細な解説や例については<a href="../caching.html">キャッシュ機能</a>
65 を参照してください。</p>
66 </summary>
67 <seealso><a href="../caching.html">キャッシュ機能</a></seealso>
69 <section id="related"><title>関連モジュールとディレクティブ</title>
70 <related>
71 <modulelist>
72 <module>mod_disk_cache</module>
73 <module>mod_mem_cache</module>
74 </modulelist>
75 <directivelist>
76 <directive module="mod_disk_cache">CacheRoot</directive>
77 <directive module="mod_disk_cache">CacheDirLevels</directive>
78 <directive module="mod_disk_cache">CacheDirLength</directive>
79 <directive module="mod_disk_cache">CacheMinFileSize</directive>
80 <directive module="mod_disk_cache">CacheMaxFileSize</directive>
81 <directive module="mod_mem_cache">MCacheSize</directive>
82 <directive module="mod_mem_cache">MCacheMaxObjectCount</directive>
83 <directive module="mod_mem_cache">MCacheMinObjectSize</directive>
84 <directive module="mod_mem_cache">MCacheMaxObjectSize</directive>
85 <directive module="mod_mem_cache">MCacheRemovalAlgorithm</directive>
86 <directive module="mod_mem_cache">MCacheMaxStreamingBuffer</directive>
87 </directivelist>
88 </related>
89 </section>
91 <section id="sampleconf"><title>サンプル設定</title>
92 <example><title>Sample httpd.conf</title>
93 #<br />
94 # Sample Cache Configuration<br />
95 #<br />
96 LoadModule cache_module modules/mod_cache.so<br />
97 <br />
98 &lt;IfModule mod_cache.c&gt;<br />
99 <indent>
100 #LoadModule disk_cache_module modules/mod_disk_cache.so<br />
101 # If you want to use mod_disk_cache instead of mod_mem_cache,<br />
102 # uncomment the line above and comment out the LoadModule line below.<br />
103 &lt;IfModule mod_disk_cache.c&gt;<br />
104 <indent>
105 CacheRoot c:/cacheroot<br />
106 CacheEnable disk /<br />
107 CacheDirLevels 5<br />
108 CacheDirLength 3<br />
109 </indent>
110 &lt;/IfModule&gt; <br />
111 <br />
112 LoadModule mem_cache_module modules/mod_mem_cache.so<br />
113 &lt;IfModule mod_mem_cache.c&gt;<br />
114 <indent>
115 CacheEnable mem /<br />
116 MCacheSize 4096<br />
117 MCacheMaxObjectCount 100<br />
118 MCacheMinObjectSize 1<br />
119 MCacheMaxObjectSize 2048<br />
120 </indent>
121 &lt;/IfModule&gt;<br />
122 <br />
123 # When acting as a proxy, don't cache the list of security updates<br />
124 CacheDisable http://security.update.server/update-list/<br />
125 </indent>
126 &lt;/IfModule&gt;
127 </example>
128 </section>
130 <directivesynopsis>
131 <name>CacheEnable</name>
132 <description>指定したストレージ管理方式を使ってのキャッシュを有効にする</description>
133 <syntax>CacheEnable <var>cache_type</var> <var>url-string</var></syntax>
134 <contextlist><context>server config</context><context>virtual host</context>
135 </contextlist>
137 <usage>
138 <p><directive>CacheEnable</directive> ディレクティブで <module>mod_cache</module>
139 モジュールが <var>url-string</var> 以下の URL をキャッシュするようにします。
140 キャッシュストレージ管理方式は <var>cache_type</var> 引数で指定します。
141 <var>cache_type</var> <code> mem</code> で、
142 <module>mod_mem_cache</module> で実装されているメモリを使ったストレージ
143 管理方式を使うように <module>mod_cache</module> に指示します。
144 <var>cache_type</var> <code>disk</code> で、
145 <module>mod_disk_cache</module> で実装されているディスクを使ったストレージ
146 管理を使うように <module>mod_cache</module> に指示します。
147 <var>cache_type</var> <code>fd</code><module>mod_cache</module>
148 <module>mod_mem_cache</module> により実装されているファイル記述子の
149 キャッシュを使うように指示します。</p>
151 <p>(下の例のように) <directive>CacheEnable</directive> ディレクティブの
152 URL 空間が重複しているときは、該当するストレージ方式を順に試して、
153 実際にリクエストの処理ができると、その方式で処理します。
154 ストレージ管理方式が実行される順番は設定ファイル中の
155 <directive>CacheEnable</directive> の順番により決定されます。</p>
157 <example>
158 CacheEnable mem /manual<br />
159 CacheEnable fd /images<br />
160 CacheEnable disk /<br />
161 </example>
163 <p>フォワードプロクシサーバとして動作する場合、
164 <var>url-string</var> を使って、キャッシュを有効にするリモートサイトや
165 プロクシプロトコルを指定することもできます。</p>
167 <example>
168 # Cache proxied url's<br />
169 CacheEnable disk /<br /><br />
170 # Cache FTP-proxied url's<br />
171 CacheEnable disk ftp://<br /><br />
172 # Cache content from www.apache.org<br />
173 CacheEnable disk http://www.apache.org/<br />
174 </example>
176 </usage>
177 </directivesynopsis>
179 <directivesynopsis>
180 <name>CacheDisable</name>
181 <description>特定の URL をキャッシュしない</description>
182 <syntax>CacheDisable <var> url-string</var></syntax>
183 <contextlist><context>server config</context><context>virtual host</context>
184 </contextlist>
186 <usage>
187 <p><directive>CacheDisable</directive> ディレクティブで
188 <module>mod_cache</module> モジュールが <var>url-string</var> 以下の
189 URL をキャッシュ<em>しない</em>ようにします。</p>
191 <example><title></title>
192 CacheDisable /local_files
193 </example>
194 </usage>
196 </directivesynopsis>
197 <directivesynopsis>
198 <name>CacheMaxExpire</name>
199 <description>ドキュメントをキャッシュする最大時間を秒数で表したもの</description>
200 <syntax>CacheMaxExpire <var>seconds</var></syntax>
201 <default>CacheMaxExpire 86400 (一日)</default>
202 <contextlist><context>server config</context><context>virtual host</context>
203 </contextlist>
205 <usage>
206 <p><directive>CacheMaxExpire</directive> ディレクティブは、
207 キャッシュする HTTP ドキュメントを、元のサーバに問い合わせないまま最大何秒
208 保持してもよいかを指定します。つまり、ドキュメントは最大でこの秒数間ぶん古く
209 なることになります。この最大値は、<transnote>レスポンス中で</transnote>ドキュメントと共に
210 ドキュメントの期日が提供されている場合でも適用されます。</p>
212 <example>
213 CacheMaxExpire 604800
214 </example>
215 </usage>
216 </directivesynopsis>
218 <directivesynopsis>
219 <name>CacheMinExpire</name>
220 <description>ドキュメントをキャッシュする最小秒数</description>
221 <syntax>CacheMinExpire <var>seconds</var></syntax>
222 <default>CacheMinExpire 0</default>
223 <contextlist><context>server config</context><context>virtual host</context>
224 </contextlist>
226 <usage>
227 <p>キャッシュ可能な HTTP ドキュメントがあったときに、オリジンサーバに問い合わせることなく
228 保持する秒数の最小値は <directive>CacheMinExpire</directive> ディレクティブを使って設定します。
229 この値は、ドキュメントに妥当な有効期限が指定されていなかった場合にのみ使われます。</p>
232 <example>
233 CacheMinExpire 3600
234 </example>
235 </usage>
236 </directivesynopsis>
238 <directivesynopsis>
239 <name>CacheDefaultExpire</name>
240 <description>期日が指定されていないときにドキュメントをキャッシュするデフォルトの期間</description>
241 <syntax>CacheDefaultExpire <var>seconds</var></syntax>
242 <default>CacheDefaultExpire 3600 (1時間)</default>
243 <contextlist><context>server config</context><context>virtual host</context>
244 </contextlist>
246 <usage>
247 <p><directive>CacheDefaultExpire</directive> ディレクティブは、ドキュメントに
248 有効期限 (expiry) や最終修正時刻 (last-modified) が指定されていない場合の
249 デフォルトの時間を指定します。<directive>CacheMaxExpire</directive>
250 ディレクティブで指定された値はこの設定を上書き<em>しません</em></p>
252 <example>
253 CacheDefaultExpire 86400
254 </example>
255 </usage>
256 </directivesynopsis>
258 <directivesynopsis>
259 <name>CacheIgnoreNoLastMod</name>
260 <description>応答に Last Modified が無くても気にしないようにする</description>
261 <syntax>CacheIgnoreNoLastMod On|Off</syntax>
262 <default>CacheIgnoreNoLastMod Off</default>
263 <contextlist><context>server config</context><context>virtual host</context>
264 </contextlist>
266 <usage>
267 <p>通常、Last-Modified による最終修正時刻の無いドキュメントはキャッシュ
268 されません。(例えば <module>mod_include</module> による処理のときなどに)
269 Last-Modified 時刻が消去されたり、そもそも最初から提供されていない
270 状況があります。<directive>CacheIgnoreNoLastMod</directive>
271 ディレクティブを使うと、Last-Modified 日時が指定されていない
272 ドキュメントでもキャッシュするように指定できます。ドキュメントに
273 最終修正時刻 (Last-Modified) 有効期限 (expiry) がない場合は、有効期限の
274 生成に <directive>CacheDefaultExpire</directive> が使われます。</p>
276 <example>
277 CacheIgnoreNoLastMod On
278 </example>
279 </usage>
280 </directivesynopsis>
282 <directivesynopsis>
283 <name>CacheIgnoreCacheControl</name>
284 <description>キャッシュされているコンテンツを返さないようにクライアントから
285 リクエストされても無視する</description>
286 <syntax>CacheIgnoreCacheControl On|Off</syntax>
287 <default>CacheIgnoreCacheControl Off</default>
288 <contextlist><context>server config</context><context>virtual host</context>
289 </contextlist>
291 <usage>
292 <p>Cache-Control: no-cache ヘッダや Pragma: no-store ヘッダのあるリクエストに
293 対しては、通常キャッシュを使いません。<directive>CacheIgnoreCacheControl</directive>
294 ディレクティブを使うと、この動作を上書きできます。
295 <directive>CacheIgnoreCacheControl</directive> On とすると、
296 リクエストに no-cache という値があっても、キャッシュを使ってドキュメントを
297 返すようになります。認証を必要とするドキュメントは<em>決して</em>
298 キャッシュされません。</p>
300 <example>
301 CacheIgnoreCacheControl On
302 </example>
304 <note type="warning"><title>警告</title>
305 このディレクティブを使うと、ドキュメント取得時にキャッシュを使わないように
306 クライアントがリクエストしているにもかかわらず、キャッシュを
307 使うようになります。その結果、
308 古いコンテンツが送られ続けることになってしまうかもしれません。
309 </note>
310 </usage>
311 <seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
312 <seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
313 </directivesynopsis>
315 <directivesynopsis>
316 <name>CacheIgnoreQueryString</name>
317 <description>キャッシュ時にクエリーストリングを無視する</description>
318 <syntax>CacheIgnoreQueryString On|Off</syntax>
319 <default>CacheIgnoreQueryString Off</default>
320 <contextlist><context>server config</context><context>virtual host</context>
321 </contextlist>
323 <usage>
324 <p>クエリーストリング付のリクエストについては通常、クエリーストリングごとに
325 個別にキャッシュされます。
326 キャッシュされるのは有効期限が指定されている場合のみで、これは
327 RFC 2616/13.9 に従ったものです。
328 <directive>CacheIgnoreQueryString</directive> ディレクティブを使うと
329 有効期限が指定されていなくてもキャッシュしますし、
330 クエリーストリングが異なっていてもキャッシュを返します。
331 このディレクティブが有効になっている場合、キャッシュ機能の側面からみると、
332 あたかもリクエストにクエリーストリングがついていなかったかのように扱います。</p>
334 <example>
335 CacheIgnoreQueryString On
336 </example>
338 </usage>
339 </directivesynopsis>
341 <directivesynopsis>
342 <name>CacheLastModifiedFactor</name>
343 <description>LastModified の日付に基づいて有効期限 (expiry)
344 を計算するための重みを指定する
345 </description>
346 <syntax>CacheLastModifiedFactor <var>float</var></syntax>
347 <default>CacheLastModifiedFactor 0.1</default>
348 <contextlist><context>server config</context><context>virtual host</context>
349 </contextlist>
351 <usage>
352 <p>ドキュメントに Last-Modified の日付が無いけれども有効期限 (expiry)
353 の日付があるというときに、有効期限を最終修正時刻からの経過時間として
354 計算するようにできます。有効期限を次の計算式に従って生成するのですが、
355 そのときに使われる <var>factor</var>
356 <directive>CacheLastModifiedFactor</directive> ディレクティブで指定します。
357 </p>
359 <p><code>expiry-period = time-since-last-modified-date * <var>factor</var>
360 expiry-date = current-date + expiry-period</code></p>
362 <p>例えば、ドキュメントが 10 時間前に最後に修正されていて、
363 <var>factor</var>0.1 であれば、期日は 10*0.1 = 1 時間に
364 設定されます。現在時刻が 3:00pm であれば、計算された期日は
365 3:00pm + 1hour = 4:00pm になります。</p>
367 <p>期日が <directive>CacheMaxExpire</directive> で設定されている値
368 より大きくなってしまっている場合は、<directive>CacheMaxExpire</directive>
369 の設定値が優先されます。</p>
371 <example>
372 CacheLastModifiedFactor 0.5
373 </example>
374 </usage>
375 </directivesynopsis>
377 <directivesynopsis>
378 <name>CacheIgnoreHeaders</name>
379 <description>指定された HTTP ヘッダをキャッシュに保存しない。
380 </description>
381 <syntax>CacheIgnoreHeaders <var>header-string</var> [<var>header-string</var>] ...</syntax>
382 <default>CacheIgnoreHeaders None</default>
383 <contextlist><context>server config</context><context>virtual host</context>
384 </contextlist>
386 <usage>
387 <p>RFC 2616 によると、hop-by-hop HTTP ヘッダはキャッシュには保管されません。
388 以下のヘッダは hop-by-hop ヘッダに該当しますので、
389 <directive>CacheIgnoreHeaders</directive>
390 の設定に<em>関係なく</em>キャッシュには保管されません:</p>
391 <ul>
392 <li><code>Connection</code></li>
393 <li><code>Keep-Alive</code></li>
394 <li><code>Proxy-Authenticate</code></li>
395 <li><code>Proxy-Authorization</code></li>
396 <li><code>TE</code></li>
397 <li><code>Trailers</code></li>
398 <li><code>Transfer-Encoding</code></li>
399 <li><code>Upgrade</code></li>
400 </ul>
402 <p><directive>CacheIgnoreHeaders</directive>
403 キャッシュに保管しない追加の HTTP ヘッダを指定します。
404 例えば、クッキーをキャッシュに保管しないようにした方がよい場合も
405 あるでしょう。</p>
407 <p><directive>CacheIgnoreHeaders</directive> の引数は、
408 キャッシュに保管しない HTTP ヘッダを空白区切りにしたリスト形式です。
409 キャッシュに保管しないヘッダが hop-by-hop ヘッダだけの場合
410 (RFC 2616 準拠の動作のとき) は、
411 <directive>CacheIgnoreHeaders</directive><code>None</code>
412 に設定できます。</p>
414 <example><title>1</title>
415 CacheIgnoreHeaders Set-Cookie
416 </example>
418 <example><title>2</title>
419 CacheIgnoreHeaders None
420 </example>
422 <note type="warning"><title>警告:</title>
423 <code>Expires</code> のような適切のキャッシュ管理のために必要な
424 ヘッダが <directive>CacheIgnoreHeaders</directive> の設定により
425 保管されていないときは、mod_cache の動作は定義されていません。
426 </note>
427 </usage>
428 </directivesynopsis>
430 <directivesynopsis>
431 <name>CacheStorePrivate</name>
432 <description>private と指定されているレスポンスのキャッシュを試みる。</description>
433 <syntax>CacheStorePrivate On|Off</syntax>
434 <default>CacheStorePrivate Off</default>
435 <contextlist><context>server config</context><context>virtual host</context>
436 </contextlist>
438 <usage>
439 <p>通常 Cache-Control: private ヘッダのついているレスポンスは
440 キャッシュされません。<directive>CacheStorePrivate</directive>
441 ディレクティブでこの挙動を上書きできます。
442 <directive>CacheStorePrivate</directive> On で private ヘッダのついている
443 リソースに対してもキャッシュを試みるようになります。
444 ただし認証の求められるリソースは <em>決して</em> キャッシュされません。</p>
446 <example>
447 CacheStorePrivate On
448 </example>
450 <note type="warning"><title>警告:</title>
451 上流サーバがキャッシュしないように指定してきても、
452 それを無視してキャッシュするようになります。
453 望ましい挙動になるのは、本当に 'private' なキャッシュについてのみでしょう。
454 </note>
455 </usage>
456 <seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
457 <seealso><directive module="mod_cache">CacheStoreNoStore</directive></seealso>
458 </directivesynopsis>
460 <directivesynopsis>
461 <name>CacheStoreNoStore</name>
462 <description>no-store と指定されているレスポンスのキャッシュを試みる。</description>
463 <syntax>CacheStoreNoStore On|Off</syntax>
464 <default>CacheStoreNoStore Off</default>
465 <contextlist><context>server config</context><context>virtual host</context>
466 </contextlist>
468 <usage>
469 <p>通常 Cache-Control: no-store ヘッダのついているレスポンスは
470 キャッシュされません。<directive>CacheStoreNoCache</directive>
471 ディレクティブでこの挙動を上書きできます。
472 <directive>CacheStoreNoCache</directive> On で no-store ヘッダのついている
473 リソースに対してもキャッシュを試みるようになります。
474 ただし認証の求められるリソースは <em>決して</em> キャッシュされません。</p>
476 <example>
477 CacheStoreNoStore On
478 </example>
480 <note type="warning"><title>警告:</title>
481 RFC 2616 に記載されているように no-store ディレクティブは、
482 "不注意による機密情報の漏洩や残留 (バックアップテープ等) を防ぐ"
483 目的で使われますが、このオプションを有効にすると、
484 機密情報を保持することになってしまいます。
485 ですので、ここで警告しておきます。
486 </note>
487 </usage>
488 <seealso><directive module="mod_cache">CacheIgnoreCacheControl</directive></seealso>
489 <seealso><directive module="mod_cache">CacheStorePrivate</directive></seealso>
490 </directivesynopsis>
491 </modulesynopsis>