キャッシュには、提供されたファイルのコピーを作成し保存する作業が含まれるので、 キャッシュが正しく機能するためにはルーチン保守が必要です。キャッシュに入れられた ファイルは、新しさ について検査して、起点サーバー上の ファイルとの整合性が既になくなっている場合は無効にする必要があります。このような ファイルの満了処理については、ファイルの有効期限で説明しています。また、 無効にしたファイルまたは未使用のファイルは、新しいファイル用のスペースを作るために、 キャッシュから除去する必要があります。このようなキャッシュ・パージ処理については、 ガーベッジ・コレクションで説明しています。
キャッシュに格納されたオブジェクトとコンテンツ・サーバー上の元のオブジェクトとの整合性を保持することを、キャッシュの新しさを維持すると言います。Caching Proxy は、キャッシュに入れる文書またはその他のオブジェクトごとに、オブジェクトの有効期限が切れる時刻を計算します。
HTTP ページの場合、コンテンツ・サーバーが生成する文書のヘッダーには、有効期限情報が含まれています。
FTP プロトコルには同等の有効期限情報が含まれていないので、Caching Proxy は、FTP ファイルに対して上記で説明しているように、それぞれのファイルの FTP ディレクトリー情報に基づいて独自の Last-Modified ヘッダーを生成して、その情報を有効期限の計算に使用します。プロキシー・サーバーが FTP サーバーからファイルのディレクトリー情報を取得できない場合は、FTP URL と一致するデフォルト値が使用されます。また、FTP サーバーには標準の日付形式がないので、Caching Proxy は一部の FTP サーバーが送信した日付および時刻を認識できない場合があります。 その場合、プロキシー・サーバー のデフォルトの有効期限時刻値が使用されます。 この手順によって、プロキシーは HTTP ページと FTP ファイルのキャッシングを同様の方法で管理することができます。
有効期限は、以下の方法 (優先順位の順) のいずれかでコンテンツ・サーバーにより指定できます。
前述の詳細情報を使用して有効期限時間が計算された後、Caching Proxy では、この URL に 適用される最小保持時間の値があるかどうかが調べられます。 この値があるときに、指定された時間が計算した有効期限時間より長い場合は、最小保持時間値で指定された時間がオブジェクトの有効期限時間として使用されます。 このことは、Caching Proxy が文書の有効期限時間を 0 分と計算した場合にも該当します。したがって、 失効したコンテンツがサービスされるのを回避するために、最小保持時間設定値の使用には 注意してください。(最小保持時間値を設定するには、CacheMinHold ディレクティブまたは 「キャッシュ構成」–>「キャッシュ有効期限設定」の 「URL 有効期限」の設定を使用してください。詳しくは、 キャッシュの新しさの構成を参照してください。)
最後に有効期限時間の値は、「時間マージン」の設定値と照合されます。有効期限時間が「時間マージン」値より大きい場合には、文書はキャッシュに格納され、そうでない場合には、キャッシュに追加されません。 (「時間マージン」値を設定するには、CacheTimeMargin ディレクティブを使用するか、 または キャッシュの新しさの構成の指示に従ってください。)
文書がキャッシュ内にあるが、有効期限が切れている場合には、Caching Proxy は、コンテンツ・サーバーに対して if-modified-since 要求という特別の要求を出します。 この要求によって、文書がプロキシーに最後に受信された後に変更された場合にのみ、コンテンツ・サーバー は文書を送信することになります。文書が変更されていない場合には、コンテンツ・サーバーはそのことを示すメッセージを送って、そのページは再送信しません。この場合、プロキシーは、キャッシュに格納された文書をサービスします。 FTP ファイルの場合、プロキシー・サーバーは、この if-modified-since プロセスをシミュレートします。 ファイルが FTP サーバーで変更されなかったと判別すると、キャッシュからファイルがサービスされます。 そうでない場合には、FTP サーバーから新しいバージョンを入手します。
これは、フォワード・プロキシー構成にのみ適用されます。
FTP プロトコルは HTTP プロトコルほど厳格に日付や時刻を定義しないので、FTP ファイルに対してプロキシーが生成する Last-Modified ヘッダーは、いくつかの要因によって実際のファイル日付とわずかに異なることがあります。このような要因として、以下のものがあります。
FTP ファイルのキャッシュ有効期限が切れた場合、プロキシーは、その FTP ファイル用に、 HTTP の if-modified-since 再検査プロセスをシミュレートします。 これは、要求されたファイルに 対して FTP LIST コマンドを発行し直して、ファイル日付を FTP サーバーが戻した応答から解析し、 その日付をファイルの最初の検索時に Last-Modified ヘッダー用にプロキシー・サーバーが生成した日付と比較します。 ファイル日付が変更されていない場合には、プロキシー・サーバーはキャッシュされた FTP ファイルを再検査済みとマーク付けしてそのファイルに新しい有効期限を設定し、FTP サーバーからファイルを再検索しないで、キャッシュからファイルをサービスします。 この 2 つのファイル日付が一致しない場合には、プロキシーは FTP サーバーからファイルを再検索して、新しいファイル日付で新しいコピーをキャッシュに入れます。
FTP サーバーからファイルのディレクトリー情報を入手することが、いつでも可能というわけではあ りません。プロキシーが FTP ファイルの日付を判別できない場合は、そのファイルの "Last-Modified" ヘッダーを生成することはありません。代わりに、URL に一致する、CacheDefaultExpiry ディレクティブ用に指定された値を使用して、そのファイルをキャッシュに保持しておく時間を決定します。この時間枠が期限切れになると、プロキシーはいつでも、FTP サーバーからファイルを再検索します。 キャッシュ内の特定の FTP ファイルがしばしば CacheDefaultExpiry ディレクティブを使用して、頻繁に検索している (大量のネットワーク・トラフィックを生成している) ように見える場合には、その特定のファイルについてきめ細かい CacheDefaultExpiry の値の指定を考慮してください。これを行うことで、それらはより長時間キャッシュで保持されます。
構成および管理フォームでキャッシュ有効期限設定を指定するには、「キャッシュ構成」–>「キャッシュ有効期限設定」–>「キャッシュ・ ファイルの時間制限」フォームを使用します。 キャッシュ・ファイルの有効期限の設定に関する詳細は、ファイルの有効期限を参照してください。
キャッシュ・ファイルの有効期限時間を指定するには、「構成および管理」フォームで、「キャッシュ構成」–>「キャッシュ有効期限設定」を選択します。 次のフォームが役立ちます。
このフォームでは、URL に基づいてファイルがキャッシュに保持される最小時間を設定します。 このフォームでは、各種の URL 要求テンプレートに対してさまざまなキャッシュ動作を指定できます。
プロキシー構成ファイルを編集して URL ベースのファイル有効期限を設定するには、 付録B. 構成ファイル・ディレクティブの次のディレクティブについての解説セクションを参照してください。
「キャッシュ有効期限設定」フォームを使用して、 使用済みファイルまたは未使用ファイルのデフォルトの有効期限設定値を指定します。 別々の値を HTTP、FTP、および Gopher ファイルに設定することができ、 使用済みファイルまたは未使用ファイルにも別々の値を設定することができます。
このフォームには、次のような別のファイル有効期限オプションもあります。
プロキシー構成ファイルを編集してデフォルトの有効期限設定値を設定するには、以下のディレクティブについての解説ページを参照してください。
「最終変更係数」フォームを使用して、ヘッダーに有効期限のない キャッシュ・ファイルの有効期限をプロキシーで計算するために使用する値を設定します。 各種の要求テンプレートと一致するファイルに異なる値を設定できます。 有効期限を計算するために、最初に一致したテンプレートが使用されます。
プロキシー構成ファイルを直接編集して最終変更係数を設定するには、CacheLastModifiedFactor - 有効期限を決定する値を指定するを参照してください。
「キャッシュ・ファイルの時間制限」構成フォームでは、 ファイルがキャッシュ内に残っていることのできる最長時間を設定します。 時間制限は、要求テンプレートに基づいて設定され、時間制限が期限切れになったときにその ファイルを破棄するか、または妥当性を再検査するかを指定できます。 この設定は、有効期限が無効になっていたり、有効期限時間が非常に長いファイルを保守するために使用することができます。
プロキシー構成ファイルを編集してキャッシュ・ファイルの最長有効期限時間の制限を設定するには、以下を参照してください。
頻繁にアクセスされる URL をキャッシュして、システム・リソースの使用量を最小にする努力の一環として、Caching Proxy は、ガーベッジ・コレクション と呼ばれるクリーンアップ・プロセスを実行します。このプロセスでは、古いファイルや使われないファイルがキャッシュから取り除かれて、より新しいファイル用のスペースが作られます。
ガーベッジ・コレクション・プロセスでは、キャッシュ・ディレクトリー内のファイルを調べ、有効期限が切れたファイルの除去を試みて、キャッシュのサイズを削減して新しいファイル用にスペースを作り出します。ガーベッジ・コレクションは自動的に実行されますが、一部の設定値を構成し、要件に合わせてこのプロセスを調整することができます。
ガーベッジ・コレクションを構成するには、「構成および管理」フォームで、 「キャッシュ構成」–>「ガーベッジ・コレクション設定」を選択します。 このフォームを使用して、「最高水準点」および 「最低水準点」を設定することにより、ガーベッジ・ コレクションの開始時と停止時を決定します。キャッシュ内の使用済みスペースが 最高水準点に設定したパーセンテージ以上になると、ガーベッジ・コレクションが 開始されます。キャッシュ内の使用済みスペースのパーセンテージが最低水準点に 設定した値以下になるまで、ガーベッジ・コレクションは継続されます。
2 つのガーベッジ・コレクション・アルゴリズムから選択することができます。 responsetime アルゴリズムでは、大きいファイルを優先的に キャッシュから除去することによってユーザーへの応答に必要な時間を最適化します。 bandwidth アルゴリズムでは、小さいファイルを優先的に キャッシュから除去することによってネットワーク帯域幅の使用を最適化します。 いずれかを選択するか、または両方を混合して使用してください。
プロキシー構成ファイルを編集してガーベッジ・コレクションを構成するには、以下のディレクティブについての解説セクションを参照してください。