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

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

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

NCA ファイル

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

表 2–1 NCA ファイル

ファイル名 

機能 

/dev/nca

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) のマニュアルページを参照

/etc/nca/ncaport.conf

NCA で使用する IP アドレスとポートが記述されているファイル。 詳細は、ncaport.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

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

/var/run/nca_httpd_1.door

ドアパス名 

NCA アーキテクチャ

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

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

また、カーネルモジュールは、すべての 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 が含まれている場合、ページはキャッシュされません。