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 サービスのデータフロー

このフロー図は、カーネル内の NCA 層を介して行われるクライアント要求のデータフローを示しています。

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 ソケットユーティリティライブラリのロード方法」 を参照してください。