プロキシー・サーバー・キャッシングの概説

キャッシングとは、プロキシー・サーバーがクライアントに要求されたファイルのローカル・コピーを保存して、同一のクライアントや別のクライアントから再び要求されたときに、キャッシュからそのファイルを迅速に提供できるようにする機能です。

Caching Proxy は HTTP 1.1 に準拠しているため、通常 HTTP 1.1 プロトコルに従って、文書をキャッシュに入れ、その新しさを判別します。

この章では、プロキシー・サーバーキャッシュの機能についてそのいくつかを説明します。構成可能な機能については、 適切な値の設定方法が以降の章で詳細に説明されています。

キャッシュ・ストレージ

プロキシー・サーバーは、物理ストレージ・デバイスまたはシステム・メモリーにキャッシュを格納することができます。 ユーザーのシステムに適したキャッシュ・ストレージのタイプは、使用するハードウェアの性能によって、 またキャッシュの応答速度とキャッシュに格納する項目数ではどちらの方が重要かによって異なります。 一般に、メモリー・キャッシュの応答時間はディスク・キャッシュの場合より高速ですが、 メモリー・キャッシュのサイズはプロキシー・サーバー・マシンの RAM 容量によって制限されます。 ディスク・キャッシュのサイズは、ストレージ・デバイスのサイズによって制限されますが、 これは通常、RAM 容量よりもかなり大きなサイズになります。

ディスク・キャッシュの場合、Caching Proxy はロー・ディスク・キャッシュを使用します。これは、プロキシー・サーバーが オペレーティング・システムの読み取りおよび書き込みプロトコルを使用せずに、直接キャッシュ・デバイスに 書き込むという意味です。 htcformat コマンドを使用して、ディスク・キャッシュ用のストレージ・デバイスを 準備しておく必要があります。htcformat の詳細は、基本的なキャッシュの構成のセクションにあります。

キャッシュ索引

メモリー・キャッシュとディスク・キャッシュのどちらの場合でも、 Caching Proxy はシステム・メモリー・スペースを使用してキャッシュの索引も保持します。 これにより、キャッシュされたファイルの検索に要する処理時間が短縮されます。

この Caching Proxy と他のプロキシー・サーバーではキャッシュ・ディレクトリー構造と索引付けメソッドが異なります。Caching Proxy は、キャッシュ内のファイルに関する情報を含む索引をメモリー内で保守します。ディスクまたはその他のメディアの代わりに索引用に RAM を使用すると、ファイルの索引付けと検索がより速くなります。

索引には、キャッシュに格納されたオブジェクトの URL、キャッシュの場所、および有効期限情報が含まれています。このため、索引を入れるのに必要なメモリーの量は、キャッシュ内のオブジェクトの数に比例します。

クライアントから要求を受信すると、プロキシーは、メモリー内のキャッシュ索引を調べてその URL を検索します。

FTP キャッシュ

プロキシーは、要求をキャッシュに入れるように構成されると、FTP ファイル要求および HTTP ファイル要求をキャッシュに入れることができます。ただし、FTP ファイル には HTTP ファイルと同じタイプのヘッダー情報が含まれていないため、 キャッシュ FTP ファイルの有効期限は他のキャッシュ・ファイルとは異なる方法で 計算されます。

FTP サーバーにファイル検索の要求を出すと、プロキシーはまず、FTP サーバーにそのファイルの LIST 要求を送信して、そのファイルに関する FTP ディレクトリー情報を入手します。FTP サーバーが LIST 要求に肯定的な完了応答とそのファイルのディレクトリー情報で応答すると、プロキシーは、FTP ディレクトリー情報から解析した日付で HTTP の Last-Modified ヘッダーを作成します。 次に、 プロキシーのキャッシュ機能は、この Last-Modified ヘッダーを、構成ファイル の CacheLastModifiedFactor ディレクティブに設定された値と共に使用して、期限が 切れるまでに FTP ファイルがキャッシュに残る時間を決定します。

"Last-Modified" ヘッダーと CacheLastModifiedFactor ディレクティブを使用して、ファイルがキャッシュに残る時間を決定する方法の詳細については、キャッシュ・コンテンツの保守を参照してください。

無名ログインではなく、特定のユーザー ID で検索される FTP ファイルは、プライベートなファイルと考えられ、キャッシュに格納されません。

DNS キャッシュ

Web コンテンツのキャッシングに加えて、プロキシー・サーバーはドメイン・ネーム・サーバー (DNS) のキャッシュも実行します。例えば、クライアントが www.myWebsite.com から URL を要求すると、プロキシーは、ホスト名 www.myWebsite.com を IP アドレスに変換するよう、その DNS サーバーに求めます。その後、この IP アドレスがキャッシュに格納され、そのホスト名に対する以降の要求に必要な応答時間が 改善されます。DNS キャッシュは自動的に行われ、再構成することはできません。

キャッシュの除外

ファイルおよび文書の中には決してキャッシュに格納されないものもあります。そのようなファイルまたは文書とは、以下のようなものです。

キャッシュ・フィルターを設定すると、キャッシュに入れる項目をさらに制限することができます。 例えば、プロキシー・サーバーで プロキシーからローカルで提供されたファイルをキャッシュに入れないようにすることができます。 詳細については、キャッシュ対象の制御を参照してください。

キャッシュの管理

キャッシュの管理には、多くの要因が含まれます。サーバー管理者として、次を指定できます。

さらに、Caching Proxy の全体的なパフォーマンスを改善するために、キャッシュ構成の調整を行うことができます。 パフォーマンス調整の詳細については、プロキシー・サーバー・キャッシュの調整を参照してください。