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

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