以下各节介绍了使用 NCA 所需的文件和组件。而且,还提供了有关 NCA 如何与 Web 服务器交互的特定信息。
为了支持 NCA 功能,您需要多个文件。其中许多文件是 ASCII 格式的,但也有一些文件是二进制格式的。下表列出了需要的所有文件。
表 2–1 NCA 文件
文件名 |
功能 |
---|---|
NCA 设备的路径名。 |
|
可列出服务器中配置的所有物理接口的文件。 |
|
可列出与服务器关联的所有主机名的文件。此文件中的项必须与 /etc/hostname.* 文件中的项匹配,NCA 才能起作用。 |
|
用于启动 NCA 服务器的脚本。此脚本在引导服务器时运行。 |
|
用于启动 NCA 日志记录的脚本。此脚本在引导服务器时运行。 |
|
可列出 NCA 运行所在接口的文件。有关更多信息,请参见 nca.if(4) 手册页。 |
|
可列出用于 NCA 的配置参数的文件。有关更多信息,请参见 ncakmod.conf(4) 手册页。 |
|
可列出用于 NCA 日志记录的配置参数的文件。有关更多信息,请参见 ncalogd.conf(4) 手册页。 |
|
可列出用于 NCA 的 IP 地址和端口的文件。有关更多信息,请参见 ncaport.conf(4) 手册页。 |
|
用于将日志文件中的数据转换为一般日志格式的命令。有关更多信息,请参见 ncab2clf(1) 手册页。 |
|
用于配置 NCA 以在引导期间在多个接口上运行的命令。有关更多信息,请参见 ncaconfd(1M) 手册页。 |
|
使用 AF_NCA 套接字而非 AF_INET 套接字的库。此库必须用在使用 AF_INET 套接字的 Web 服务器上。有关更多信息,请参见 ncad_addr(4) 手册页。 |
|
保存日志文件数据的文件。该文件为二进制格式,因此不要对其进行编辑。 |
|
门路径名。 |
NCA 功能包括以下组件。
内核模块,ncakmod
Web 服务器,httpd
内核模块 ncakmod 可在系统内存中维护 Web 页的高速缓存。该模块通过套接字接口与 Web 服务器 httpd 通信。系列类型为 PF_NCA。
该内核模块还提供一种可记录所有 HTTP 高速缓存命中的日志记录功能。NCA 日志记录将 HTTP 数据以二进制格式写入磁盘。NCA 提供一种转换实用程序,以将二进制日志文件转换为一般日志格式 (common log format, CLF)。
下图显示了常规路径以及启用 NCA 时所用路径的数据流。
以下列表显示在客户机与 Web 服务器之间的请求流。
从客户机向 Web 服务器发出 HTTP 请求。
如果页面在高速缓存中,则返回内核内部的高速缓存 Web 页。
如果页面不在高速缓存中,则请求转到 Web 服务器,以恢复或更新页面。
根据响应中所用的 HTTP 协议语义,决定是否对页面进行高速缓存。然后将该页面返回客户机。如果 HTTP 请求中包含 Pragma: No-cache 头,页面将不会被高速缓存。