Solaris のシステム管理 (資源管理とネットワークサービス)

Web ページのキャッシング (リファレンス)

この節では、NCA を使用するために必要なファイルとコンポーネントについて説明します。 また、NCA が Web サーバーと通信する方法についても説明します。

NCA ファイル

NCA 機能をサポートするにはいくつかのファイルが必要です。ほとんどのファイルは ASCII 形式ですが、バイナリ形式のファイルもあります。次の表に必要なファイルの一覧を示します。

表 2-1 NCA ファイル

ファイル名 

機能 

/etc/hostname.*

サーバー上で構成されているすべての物理インタフェースについてホスト名が記述されているファイル 

/etc/hosts

サーバーに対応付けられるすべてのホスト名が記述されているファイル。 NCA が機能するには、このファイルの各エントリが、対応する /etc/hostname.* ファイル内のエントリと一致していなければならない

/etc/init.d/ncakmod

NCA サーバーを起動するスクリプト。このスクリプトは、サーバーのブート時に実行される 

/etc/init.d/ncalogd

NCA ロギングを開始するスクリプト。 このスクリプトは、サーバーのブート時に実行される 

/etc/nca/nca.if

NCA が実行されるすべてのインタフェースが記述されているファイル。詳細は nca.if(4) のマニュアルページを参照

/etc/nca/ncakmod.conf

NCA 用のすべての構成パラメータが記述されているファイル。詳細は ncakmod.conf(4) のマニュアルページを参照

/etc/nca/ncalogd.conf

NCA ロギング用のすべての構成パラメータが記述されているファイル。詳細は ncalogd.conf(4) のマニュアルページを参照

/usr/bin/ncab2clf

ログファイル内のデータを共通ログ形式に変換するために使用されるコマンド。詳細は ncab2clf(1) のマニュアルページを参照

/usr/lib/net/ncaconfd

ブート時に複数のインタフェース上で NCA が実行するように設定するために使用されるコマンド。詳細は ncaconfd(1M) のマニュアルページを参照

/usr/lib/nca_addr.so

AF_INET ソケットの代わりに AF_NCA ソケットを使用するライブラリ。このライブラリは AF_INET ソケットを使用する Web サーバー上で使用する。詳細は ncad_addr(4) のマニュアルページを参照

/var/nca/log

ログファイルのデータを保持するファイル。バイナリ形式のファイルなので編集できない 

NCA アーキテクチャ

NCA が機能するためには、次のコンポーネントが必要です。

カーネルモジュール ncakmod は、Web ページのキャッシュをシステムメモリー内に保持します。このモジュールは、ソケットインタフェース (ファミリータイプは PF_NCA) を介して Web サーバー httpd と通信します。

また、カーネルモジュールは、すべての HTTP キャッシュヒットを記録するログ機能も備えています。NCA ロギングは、HTTP データをバイナリ形式でディスクに書き込みます。NCA には、バイナリログファイルを共通ログ形式 (CLF) に変換するユーティリティが用意されています。

次の図に、通常のデータフローと、NCA が有効になっている場合のデータフローを示します。

図 2-1 NCA サービスのデータフロー

Graphic

NCA から httpd への要求フロー

以下に、クライアントと Web サーバー間の要求フローを示します。

  1. クライアントから Web サーバーに対して HTTP 要求が発行されます。

  2. ページがキャッシュ内にある場合は、カーネル内キャッシュの Web ページが返されます。

  3. ページがキャッシュ内にない場合は、Web サーバーに要求が送信され、ページが取得または更新されます。

  4. ページがキャッシュされているかどうか、またクライアントに返されるかどうかは、HTTP 応答で使用される HTTP プロトコルのセマンティクスによって異なります。 HTTP 要求に「Pragma:No-cache」ヘッダが含まれていない場合、ページはキャッシュされません。

ライブラリ置き換えによる door サーバーデーモンのサポート

多くの Web サーバーは AF_INET ソケットを使用します。デフォルトでは、NCA は AF_NCA ソケットを使用します。この状況に対応するために、置き換え用のライブラリが用意されています。新しいライブラリは標準ソケットライブラリ libsocket.so の前にロードされます。bind() ライブラリ呼び出しは新しいライブラリ ncad_addr.so の用意するものが呼び出されます。

/etc/nca/ncakmod.conf ファイル内で状態が有効に設定されていれば、Solaris 9 リリースに付属している Apache は、このライブラリを呼び出すように設定されています。IWS または Netscape サーバーで新しいライブラリを使用する場合は、「NCA ソケットユーティリティライブラリのロード方法」 を参照してください。