DeleGate における ICP version 2 は、 1998/6/14にリリースされたバージョン 5.5 で実行可能になりました。 現在、HTTP-DeleGate (HTTP クライアントのための DeleGate) はそれぞれの要求されたリソースに対するもっとも近い parent/sibling キャッシュ を選択するために ICP を利用できます。 DeleGate は、独立した ICPサーバとしても動作可能です。 (階層ファイルディレクトリのそれぞれのファイルはURLによって識別されたリソースを含みます)
あなたの HTTP-DeleGate サーバからICPサーバを参照するには、 それらサーバを、"ICP=icp-host-list" パラメータで指定します:
delegated -P8080 SERVER=http ICP=icp-host1,icp-host2DeleGate を ICP サーバとして動作させるには、 (キャッシュ)ディレクトリの場所を指す CACHEDIR パラメータと共に、"SERVER=icp" パラメータを指定します。
delegated -P3130 SERVER=icp CACHEDIR=/path/of/cacheファイアーウォール上の HTTP-DeleGate と、プロキシ ICP-DeleGate の組合せを作るには:
delegated -P3130 SERVER=icp ICP=icp-host1,icp-host2 delegated -P8080 SERVER=http ICP=icp-host1,icp-host2注)単一サーバプロセスの DeleGate で ICP-DeleGate と、HTTP-DeleGate 両方を動作させることはできません。
ICP クライアント設定
ICP-DeleGate のさらに高度な使用法の概要については、 ICP, Squid の "reference" 実装と比較するとわかり易いでしょう。 Squid での ICP 設定は、以下の書式で `cache_host' ディレクティブを指定します。 [RFC2187].
cache_host hostname type http-port icp-port [options]例) 2つのおとなりのキャッシュは、以下のように参照できます。
cache_host host1 parent 8080 3130 cache_host host2 sibling 80 3130この例は、ICP パラメータ を使うことで、DeleGate で実現できます:
ICP=host1/p/8080/3130,host2/s/80/3130 または、省略形で: ICP=host1/p,host2//80ICP パラメータの書式は、以下のようになります:
"ICP=" icp-servers icp-servers = icp-server [ "," icp-server ]* icp-server = host "/" server-type "/" http-port "/" icp-port server-type = [ "p" | "s" | "l" ] [ "o" ] [ "n" ] [ "H" | "D" | "O" ]サーバタイプ "p", "s", "|" は、ICP サーバのタイプを指定します: "p" は "parent(親)" キャッシュを意味し、ICP レスポンスが、HIT または、MISS の場合、HTTP リクエストは転送され、"s" は "sibling(兄弟)" を意味し、 (デフォルトで)ICPレスポンスが、HIT の場合のみ、HTTPリクエストが転送され、 "|" は "listener(リスナ)"を意味し、HTTPリクエストは転送されません。 これは、聞くだけの ICP サーバで、ログ、プリフェッチ、ロボット制御などを行います。 サーバタイプ "o" は ICP サーバに HIT_OBJ 応答を要求することを意味します。
ICP パラメータの完全な書式は以下のようになります:
"ICP=" icp-servers [ ":" icp-ext ] icp-ext = [ icp-opt ] ":" [ http-port ] ":" [ icp-port ] [ ":" conn-map ] conn-map = dst-protocols ":" dst-hosts ":" src-hostsconn-map で、誰が何を要求したかによって、icp-server を選択できます: リクエスト注の プロトコルと、対象サーバ、および、要求しているソースクライアント 詳細は、 Manual.htm を見てください。
ICP サーバ設定
DeleGate(ICP-DeleGate) による ICP サーバ は、独自の HTTP プロキシ や、他のプロキシまたは、 元サーバで提供されるコンテンツの URL を、ICPでやりとりします。 ICP-DeleGate の振舞は、ICPCONF で制御できます。
"ICPCONF=" conf-list conf-list = conf [ "," conf ]* conf = "para:" number // 並列サーバプロセスの数 [2] | "hitage:" age // HIT で通知するもっとも古いキャッシュ [1d] | "hitobjage:" age // HIT_OBJ で返すもっとも古いキャッシュ [1h] | "hitobjsize:" size // HIT_OBJ で返すデータの最大サイズ [1024]ICP-DeleGate の アクセス制御は、DeleGate によりリレー可能な全てのプロトコルで共通で使用される、 PERMIT パラメータで達成します。
PERMIT = dst-protocols : dst-hosts : src-hostsクライアントの要求が許可されない場合、ICP_OP_DENIED がクライアントに返されます。
ICP-DeleGate は、CACHEDIR パラメータにより、キャッシュファイルディレクトリの場所が指定されなければなりません。
URL: protocol://site/url-path file: $CACHEDIR/protocol/site/url-pathもちろん、これは、DeleGate のキャッシュディレクトリ構造であり、関係を気にする必要はありません。 通常、ICP-DeleGate サーバは、共通の CACHEDIR をもつ、HTTP-DeleGate サーバ群とともに動作させます。
[Last updated: June 14, 1998]