系统管理指南:网络服务

高速缓存 Web 页(参考)

以下各节介绍了使用 NCA 所需的文件和组件。而且,还提供了有关 NCA 如何与 Web 服务器交互的特定信息。

NCA 文件

为了支持 NCA 功能,您需要多个文件。其中许多文件是 ASCII 格式的,但也有一些文件是二进制格式的。下表列出了需要的所有文件。

表 2–1 NCA 文件

文件名 

功能 

/dev/nca

NCA 设备的路径名。 

/etc/hostname.*

可列出服务器中配置的所有物理接口的文件。 

/etc/hosts

可列出与服务器关联的所有主机名的文件。此文件中的项必须与 /etc/hostname.* 文件中的项匹配,NCA 才能起作用。

/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_NCA 套接字而非 AF_INET 套接字的库。此库必须用在使用 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 提供一种转换实用程序,以将二进制日志文件转换为一般日志格式 (common log format, CLF)。

下图显示了常规路径以及启用 NCA 时所用路径的数据流。

图 2–1 NCA 服务的数据流

流程图显示了从客户机请求通过内核中的 NCA 层的数据流。

NCA 到 Httpd 的请求流

以下列表显示在客户机与 Web 服务器之间的请求流。

  1. 从客户机向 Web 服务器发出 HTTP 请求。

  2. 如果页面在高速缓存中,则返回内核内部的高速缓存 Web 页。

  3. 如果页面不在高速缓存中,则请求转到 Web 服务器,以恢复或更新页面。

  4. 根据响应中所用的 HTTP 协议语义,决定是否对页面进行高速缓存。然后将该页面返回客户机。如果 HTTP 请求中包含 Pragma: No-cache 头,页面将不会被高速缓存。