Web 上のある地点で単一のサーバーでは処理しきれない量のトラフィックが発生することは よくあることです。解決策の 1 つは、単にサーバーをさらに追加することです。 しかし、複数の Caching Proxy サーバーを使用すると、あるキャッシュのコンテンツが他のキャッシュのコンテンツと重複することがよくあります。 記憶域に不要な冗長部分が 生じるだけでなく、帯域幅の節約を最大化することができなくなります。これは、 キャッシュ・ファイルの取り出し要求が、独自のキャッシュにそのファイルを持たない プロキシー・サーバーに対して出された時に、そのファイルが起点サーバーから再び 取り出されるためです。階層チェーンのプロキシー・サーバーを使用すると重複キャッシュを最小限に抑えることができますが、この方法でも特定のサーバーを経由するトラフィックが増える結果となり、チェーン内のリンクが追加されるたびに待ち時間が長くなります。
キャッシュ共有では、各キャッシュが他のキャッシュと共にそのコンテンツを共有できるので、 このような問題が解消されます。帯域幅は、以下の理由から節減されます。
複数のキャッシュを 1 つの論理キャッシュであるかのように使用するには、以下の 2 とおりの方法があります。
RCA と ICP は併用できます。
RCA の計画では、以下の勧告を考慮に入れてください。
これらの条件のいずれかに違反しているか、あるいは別の組織が この配列のメンバーである別のサーバーを管理している場合には、 リモート・キャッシュ・アクセスは適切ではありません。
リモート・キャッシュ・アクセスを構成するには、「構成および管理」フォームで、 「キャッシュ構成」–>「リモート・キャッシュ・アクセス」を選択します。 このフォームには、1 つの論理キャッシュを共有する名前付き配列を定義するフィールドがあります。 配列のメンバーごとに、必要な情報を入力してください。
プロキシー構成ファイルを編集してリモート・キャッシュ・アクセスを構成するには、付録B. 構成ファイル・ディレクティブの 以下のディレクティブについての解説セクションを参照してください。
インターネット・キャッシング・プロトコル・プラグインによって Caching Proxy は、 HTML ページおよびその他のキャッシュ可能リソースの検索で、ICP に準拠した キャッシュを照会できます。プロキシー・サーバーは HTTP 要求を受け取ると、独自のキャッシュでそのリソースを検索します。 ローカル・キャッシュにそのリソースが見つからず、ICP プラグインが使用可能な場合には、 プロキシー・サーバーは ICP 照会パケット内の URL 要求をカプセル化して、識別された すべての ICP PEER キャッシュにこのパケットを配布します。PEER キャッシュがリソースを 持っていると応答すると、プロキシー・サーバーはその PEER のキャッシュからリソースを検索します。 複数の PEER が肯定的な応答をした場合は、最初の応答が処理されます。 ヒットで応答する PEER がない場合には、元のサーバーはそのワークフローに従って要求の処理を続行します。 例えば、プロキシー・サーバーがもう 1 つのプラグインを呼び出し、リモート・キャッシュ・アクセス・ルーチンへ 継続するか (RCA が使用可能な場合)、または要求されたリソースそのものを取り出すことができます。
ICP プラグインは、プロキシー構成ファイル ibmproxy.conf を編集することによって、 活動化され、構成されます。ICP プラグインを使用するためには、ServerInit ディレクティブ または PreExit ディレクティブ、あるいはその両方を構成ファイルの API ディレクティブ・ セクションに追加する必要があります。どちらのディレクティブが使用されるかは、ICP システム内で Caching Proxy に割り当てられているロールに応じて異なります。
これらのディレクティブを作成するには、ibmproxy.conf ファイルを手作業で編集するか、 あるいはプロキシー・サーバーが既に稼働中の場合には「構成および管理」フォームの「サーバー構成」–>「要求処理」–>「API 要求処理」に接続します。
ibmproxy.conf ファイルの API セクションには、(コメントの形で) プロトタイプ・ディレクティブが追加されていることに注意してください。 この API ディレクティブは目的別の順序で配列されています。 API ディレクティブを追加して新しい機能やプラグイン・モジュールを使用できるようにするには、各ディレクティブを構成ファイルのプロトタイプ・セクションに示されているように配列してください。あるいは、必要に応じて API ディレクティブをアンコメントして編集し、 それぞれ必要な機能やプラグインに対するサポートを組み込んでください。
ServerInit および PreExit ディレクティブには 2 つの引数があります。(1) 共有ライブラリーの完全修飾パスと (2) 関数呼び出しです。これらの引数はコロン (:) で区切られます。 最初の引数はシステム特有で、プラグイン・コンポーネントのインストール場所によって決まります。2 番目の引数は共有ライブラリーにハードコーディングされるので表示されたとおりに入力する必要があります。
プロキシー構成ファイルでは各ディレクティブは単一行にある必要があります。
ServerInit path_of_shared_library:icpServer
Linux および UNIX の例:
ServerInit /opt/ibm/edge/cp/internet/lib/plugins/icp/libicp_plugin.so:icpServer
Windows の例:
ServerInit C:¥Program Files¥IBM¥edge¥cachingproxy¥cp¥Bin¥plugins¥icp¥icpplugin.dll:icpServer
PreExit path_of_shared_library:icpClient
Linux および UNIX の例:
PreExit /opt/ibm/edge/cp/internet/lib/plugins/icp/libicp_plugin.so:icpClient
Windows の例:
PreExit C:¥Program Files¥IBM¥edge¥cachingproxy¥cp¥Bin¥plugins¥icp¥icpplugin.dll:icpClient
プラグインの設定を構成するには、プロキシー構成ファイルで提供されている ICP* ディレクティブを追加または変更します。詳しくは、次のディレクティブの説明を参照してください。