系统管理指南:网络服务

第 1 部分 网络服务主题

本节对全书进行了概述,并提供有关 NCA 和 NTP 服务的概述、任务和参考信息。

第 1 章 网络服务(概述)

本章列出了本书包含的主要主题。此外,还对此发行版包含的 PERL 服务进行了说明。

有关 Solaris 10 发行版的主题

本书介绍以下服务和实用程序:

Perl 5

实用摘录与报告语言 (Practical Extraction and Report Language, Perl) 是一种工具,它可以生成用以辅助完成系统管理任务的脚本。

第 2 章,管理 Web 高速缓存服务器

NCA(网络高速缓存和加速器)可通过高速缓存 Web 页来改善 Web 服务器性能。

第 3 章,与时间有关的服务

NTP 和与时间相关的实用程序可为许多系统同步时间。

第 4 章,管理网络文件系统(概述)

NFS(网络文件系统)是一种协议,它可以提供从远程主机访问文件系统的能力。

第 7 章,SLP(概述)

SLP(服务定位协议)是一种动态服务搜索协议。

第 12 章,邮件服务(概述)

邮件服务允许在将邮件路由至所需任何网络的同时将邮件发送给一个或多个用户。

第 15 章,Solaris PPP 4.0(概述)

PPP(点对点协议)是一种在远程主机之间提供点对点链接的协议。

第 24 章,UUCP(概述)

UUCP(UNIX 对 UNIX 复制)允许主机交换文件。

第 27 章,使用远程系统(概述)

这些命令可用于访问远程系统中的文件。这些命令包括 ftprloginrcp

Perl 5

此 Solaris 发行版中包括实用摘录与报告语言 (Practical Extraction and Report Language, Perl) 5.8.4,它是一个功能强大的通用编程语言,通常可作为免费软件获得。由于 Perl 具有出色的进程、文件和文本处理功能,因此已逐渐成为适用于复杂系统管理任务的标准开发工具。

Perl 5 包括一个可动态装入的模块框架,这样便可为特定任务添加新功能。在网址为 http://www.cpan.org 的综合 Perl 典藏网 (Comprehensive Perl Archive Network, CPAN) 上可以免费获取许多模块。如果要想使用 gcc 从 CPAN 生成并安装附加模块,可以使用 /usr/perl5/5.8.4/bin/perlgcc 脚本来执行此操作。有关详细信息,请参见 perlgcc(1) 手册页。

访问 Perl 文档

此 Solaris 发行版提供了有关 Perl 的几个信息来源。通过以下两种机制可以获得相同的信息。

可以通过向 MANPATH 环境变量中添加 /usr/perl5/man 来访问手册页。以下示例显示了 Perl 概述。


% setenv MANPATH ${MANPATH}:/usr/perl5/man

% man perl

可以使用 perldoc 实用程序来访问其他文档。以下示例显示相同的概述信息。


% /usr/perl5/bin/perldoc perl

perl 概述页列出了此发行版包含的所有文档。

Perl 兼容性问题

通常,Perl 的 5.8.4 版本可与以前的版本兼容。脚本不需要重新生成或重新编译便可使用。但是,任何基于 XSUB 的 (.xs) 模块都需要重新编译和重新安装。

在 Solaris 10 发行版中,可将较旧的 Perl 版本作为 /usr/perl5/5.6.1/bin/perl 来访问。 未来的发行版中可能不支持旧版本,此版本只能在重新生成新模块之前使用。

Solaris 版本的 Perl 的更改

Solaris 版本的 Perl 编译为可对 malloc 系统、64 位整数和大文件提供支持。此外,还应用了相应的修补程序。有关所有配置信息的完整列表,请查看此命令的结果。


% /usr/perl5/bin/perlbug -dv

---

Flags:

    category=

    severity=

---

Site configuration information for perl v5.8.4:

 .

 .

使用 perl -V 可以生成更短的列表。

第 2 章 管理 Web 高速缓存服务器

本章概述了 Solaris 网络高速缓存和加速器 (Network Cache and Accelerator, NCA),介绍了 NCA 的使用过程和有关 NCA 的参考资料。此外,还针对 Solaris 10 6/06 发行版介绍了安全套接字层 (Secure Sockets Layer, SSL) 的使用以及使用 SSL 内核代理来改进 SSL 包处理性能的过程。

网络高速缓存和加速器(概述)

Solaris 网络高速缓存和加速器 (Network Cache and Accelerator, NCA) 可通过保留 HTTP 请求期间所访问的 Web 页的内核内部高速缓存来改善 Web 服务器性能。此内核内部高速缓存使用系统内存来显著改善通常由 Web 服务器处理的 HTTP 请求的性能。使用系统内存来保存用于 HTTP 请求的 Web 页会降低内核与 Web 服务器之间的开销,从而可以改善 Web 服务器的性能。NCA 提供一个套接字接口,通过该接口,只需进行最少的修改,任何 Web 服务器都可与 NCA 通信。

从内核内部高速缓存恢复请求页(高速缓存命中)时,性能会得到显著改善。请求页不在高速缓存中(高速缓存未命中)并且必须从 Web 服务器恢复时,性能也会得到显著改善。

此产品设计用于在专用的 Web 服务器上运行。如果在运行 NCA 的服务器上运行其他大型进程,将会出现问题。

NCA 将记录所有高速缓存命中,因此 NCA 提供日志记录支持。此日志以二进制格式存储,以改善性能。ncab2clf 命令可用来将日志由二进制格式转换为一般日志格式 (common log format, CLF)。

Solaris 发行版包括以下增强功能:

使用安全套接字层协议的 Web 服务器

在 Solaris 10 6/06 发行版中,可将 Apache 2.0 和 Sun Java System Web Server 配置为使用安全套接字层 (Secure Sockets Layer, SSL) 协议。该协议可在两个应用程序之间提供保密性、消息完整性和端点身份验证。为了加速 SSL 流量,已对 Solaris 内核进行更改。

管理 Web 高速缓存服务器(任务列表)

下表介绍了使用 NCA 或 SSL 所需的过程。

任务 

说明 

参考 

规划 NCA 

要在启用 NCA 之前解决的问题的列表。 

规划 NCA

启用 NCA 

启用 Web 服务器中 Web 页的内核内部高速缓存的步骤。 

如何启用 Web 页的高速缓存

禁用 NCA 

禁用 Web 服务器中 Web 页的内核内部高速缓存的步骤。 

如何禁用 Web 页的高速缓存

管理 NCA 日志记录 

启用或禁用 NCA 日志记录进程的步骤。 

如何启用或禁用 NCA 日志记录

装入 NCA 套接字库 

在 AF_NCA 套接字不受支持的情况下使用 NCA 的步骤。 

如何装入 Socket Utility Library for NCA

将 SSL 内核代理用于 Apache 2.0 Web 服务器 

将 SSL 内核代理用于 Web 服务器以改善 SSL 包处理的步骤。 

如何配置 Apache 2.0 Web 服务器以使用 SSL 内核代理

将 SSL 内核代理用于 Sun Java System Web Server 

将 SSL 内核代理用于 Web 服务器以改善 SSL 包处理的步骤。 

如何配置 Sun Java System Web Server 以使用 SSL 内核代理

将 SSL 内核代理用于本地区域中的 Web 服务器 

将 SSL 内核代理用于本地区域中的 Web 服务器的步骤。 

在区域中使用 SSL 内核代理

规划 NCA

以下各节介绍了在启动 NCA 服务之前需要解决的问题。

NCA 的系统要求

要支持 NCA,系统必须满足以下要求:

此产品设计用于在专用的 Web 服务器上运行。如果在运行 NCA 的服务器上运行其他大型进程,将会出现问题。

NCA 日志记录

可将 NCA 服务配置为记录 Web 活动。通常,如果已启用 Web 服务器日志记录,则应启用 NCA 日志记录。

可为门服务器提供守护程序支持的插入库

许多 Web 服务器都使用 AF_INET 套接字。缺省情况下,NCA 使用 AF_NCA 套接字。为更正此情况,提供一个插入库。这一新库在标准套接字库 libsocket.so 之前装入。库调用 bind() 由新库 ncad_addr.so 插入。假设已在 /etc/nca/ncakmod.conf 中启用状态。Solaris 9 和 Solaris 10 发行版所包含的 Apache 的版本已设置为调用此库。如果您使用的是 IWS 或 Netscape 服务器,请参见如何装入 Socket Utility Library for NCA以使用新库。

多个实例支持

安装了 NCA 的系统通常需要运行多个 Web 服务器实例。例如,一个服务器可能需要既支持用于外部访问的 Web 服务器,又支持 Web 管理服务器。要分隔这些服务器,需要将每个服务器配置为使用单独的端口。

管理 Web 页的高速缓存(任务)

以下各节介绍了启用或禁用服务的各个部分的过程。

Procedure如何启用 Web 页的高速缓存

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 注册接口。

    /etc/nca/nca.if 文件中键入每个物理接口的名称。有关更多信息,请参见 nca.if(4) 手册页。


    # cat /etc/nca/nca.if
    
    hme0
    
    hme1

    每个接口都必须有一个附带的 hostname.interface-name 文件,并在 /etc/hosts 文件中具有一个表示 hostname.interface-name 内容的项。要在所有接口中都启动 NCA 功能,请在 nca.if 文件中放置一个星号 *

  3. 启用 ncakmod 内核模块。

    /etc/nca/ncakmod.conf 中的 status 项更改为 enabled


    # cat /etc/nca/ncakmod.conf
    
    #
    
    # NCA Kernel Module Configuration File
    
    #
    
    status=enabled
    
    httpd_door_path=/var/run/nca_httpd_1.door
    
    nca_active=disabled

    有关更多信息,请参见 ncakmod.conf(4) 手册页。

  4. (可选的)启用 NCA 日志记录。

    /etc/nca/ncalogd.conf 中的 status 项更改为 enabled


    # cat /etc/nca/ncalogd.conf
    
    #
    
    # NCA Logging Configuration File
    
    #
    
    status=enabled
    
    logd_path_name="/var/nca/log"
    
    logd_file_size=1000000

    可通过更改 logd_path_name 项表示的路径来更改日志文件的位置。日志文件可以是原始设备或文件。有关 NCA 日志文件路径的样例,请参见以下示例。有关配置文件的更多信息,请参见 ncalogd.conf(4) 手册页。

  5. (可选的)为多个实例支持定义端口。

    /etc/nca/ncaport.conf 文件中添加端口号。此项将使 NCA 在所有已配置的 IP 地址中监视端口 80。


    # cat /etc/nca/ncaport.conf
    
    #
    
    # NCA Kernel Module Port Configuration File
    
    #
    
      .
    
      .
    
    ncaport=*/80
    
  6. 仅适用于 x86:增加虚拟内存大小。

    使用 eeprom 命令设置系统的 kernelbase


    # eeprom kernelbase=0x90000000
    
    # eeprom kernelbase
    
    kernelbase=0x90000000

    第二个命令用于验证已设置的参数。


    注 –

    通过设置 kernelbase,可将用户进程可以使用的虚拟内存量减小至 3 GB 以下。此限制意味着系统与 ABI 不兼容。引导系统时,控制台会显示一条警告消息,指明不兼容。大多数程序实际需要的虚拟地址空间都不到 3 GB。如果某一程序需要 3 GB 以上的虚拟地址空间,则需在未启用 NCA 的系统中运行该程序。


  7. 重新引导服务器。


示例 2–1 使用原始设备作为 NCA 日志文件

ncalogd.conf 中的 logd_path_name 字符串可将原始设备定义为存储 NCA 日志文件的位置。使用原始设备的优点在于,访问原始设备的开销很小,因此服务可以运行得更快。

NCA 服务将测试文件中列出的所有原始设备,以确保没有使用任何文件系统。此测试可确保不会意外重写任何活动的文件系统。

为了防止此测试找到文件系统,请运行以下命令。此命令将销毁任何磁盘分区中已配置为文件系统的文件系统部分。在此示例中,/dev/rdsk/c0t0d0s7 是正在使用旧文件系统的原始设备。


# dd if=/dev/zero of=/dev/rdsk/c0t0d0s7 bs=1024 count=1

运行 dd 之后,便可将该原始设备添加到 ncalogd.conf 文件中。


# cat /etc/nca/ncalogd.conf

#

# NCA Logging Configuration File

#

status=enabled

logd_path_name="/dev/rdsk/c0t0d0s7"

logd_file_size=1000000


示例 2–2 将多个文件用于 NCA 日志记录

ncalogd.conf 中的 logd_path_name 字符串可将多个目标定义为存储 NCA 日志文件的位置。当第一个文件已满时,将使用第二个文件。以下示例显示如何选择先写入 /var/nca/log 文件然后再使用原始分区。


# cat /etc/nca/ncalogd.conf

#

# NCA Logging Configuration File

#

status=enabled

logd_path_name="/var/nca/log /dev/rdsk/c0t0d0s7"

logd_file_size=1000000

Procedure如何禁用 Web 页的高速缓存

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 禁用 ncakmod 内核模块。

    /etc/nca/ncakmod.conf 中的 status 项更改为 disabled


    # cat /etc/nca/ncakmod.conf
    
    # NCA Kernel Module Configuration File
    
    #
    
    status=disabled
    
    httpd_door_path=/var/run/nca_httpd_1.door
    
    nca_active=disabled

    有关更多信息,请参见 ncakmod.conf(4) 手册页。

  3. 禁用 NCA 日志记录。

    /etc/nca/ncalogd.conf 中的 status 项更改为 disabled


    # cat /etc/nca/ncalogd.conf
    
    #
    
    # NCA Logging Configuration File
    
    #
    
    status=disabled
    
    logd_path_name="/var/nca/log"
    
    logd_file_size=1000000

    有关更多信息,请参见 ncalogd.conf(4) 手册页。

  4. 重新引导服务器。

Procedure如何启用或禁用 NCA 日志记录

在启用 NCA 之后,可根据需要打开或关闭 NCA 日志记录。有关更多信息,请参见如何启用 Web 页的高速缓存

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 更改 NCA 日志记录。

    要永久性地禁用日志记录,需要将 /etc/nca/ncalogd.conf 中的状态更改为 disabled 并重新引导系统。有关更多信息,请参见 ncalogd.conf(4) 手册页。

    1. 停止日志记录。


      # /etc/init.d/ncalogd stop
      
    2. 启动日志记录。


      # /etc/init.d/ncalogd start
      

如何装入 Socket Utility Library for NCA

仅当您的 Web 服务器不提供对 AF_NCA 套接字的本机支持时,才应遵循此过程。

在 Web 服务器的启动脚本中,添加一个用于预装库的行。该行应与以下行类似:


LD_PRELOAD=/usr/lib/ncad_addr.so /usr/bin/httpd

Procedure如何向 NCA 服务中添加新端口

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 添加一个新端口。

    /etc/nca/ncaport.conf 中添加一个新端口。此示例在 IP 地址 192.168.84.71 中添加端口 8888。有关更多信息,请参见 ncaport.conf(4)


    # cat /etc/nca/ncaport.conf
    
    #
    
    # NCA Kernel Module Port Configuration File
    
    #
    
      .
    
      .
    
    ncaport=*/80
    
    ncaport=192.168.84.71/8888
    
  3. 启动一个新的 Web 实例。

    地址需要位于包含 NCA 端口配置的文件中,Web 服务器才能将该地址用于 NCA。如果 Web 服务器正在运行,则定义新地址后必须将其重新启动。

Procedure如何配置 Apache 2.0 Web 服务器以使用 SSL 内核代理

应使用此过程来改善 Apache 2.0 Web 服务器上的 SSL 包进程的性能。

开始之前

以下过程要求已安装并配置 Apache 2.0 Web 服务器。Solaris 10 发行版中包括 Apache 2.0 Web 服务器。

要使用 SSL 内核代理,服务器私钥和服务器证书需要位于一个文件中。如果只在 ssl.conf 文件中指定了 SSLCertificateFile 参数,则指定的文件可直接用于内核 SSL。如果还指定了 SSLCertificateKeyFile 参数,则需要合并证书文件和私钥文件。合并证书文件和私钥文件的一种方法是运行以下命令:


# cat cert.pem key.pem >cert_and key.pem
  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。�C有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”ksslcfg 命令包括在 Network Security 配置文件中。

  2. 停止 Web 服务器。

    此命令将停止将服务器配置为使用 SMF 运行的系统中的 Web 服务器。


    # svcadm disable svc:/network/http:apache2
    

    如果服务尚未转换,请使用以下命令语法停止该服务: /usr/apache2/bin/apachectl stop

  3. 确定要用于 ksslcfg 命令的参数。

    ksslcfg(1M) 手册页中列出了所有选项。必须了解的参数包括:

    • key_format-与 -f 选项一起定义证书和密钥格式。对于 SSL 内核代理,该值应为 pempkcs12

    • key_and_certificate_file-与 -i 选项一起设置存储服务器密钥和证书的文件位置。

    • password_file-与 -p 选项一起选择文件的位置,该文件中应包括用于加密私钥的口令。此口令用来允许无人参与的重新引导。对该文件的权限应为 0400

    • proxy_port-与 -x 选项一起设置 SSL 代理端口。请选择标准端口 80 之外的其他端口。

    • ssl_port-选择服务器应用程序的端口。通常,将此参数设置为 443


    注 –

    不能为 NCA 配置 ssl_portproxy_port 值,因为 SSL 内核代理以独占方式使用这些端口。通常,端口 80 用于 NCA,端口 8080 用于 proxy_port,端口 443 用于 ssl_port


  4. 创建服务实例。

    使用 ksslcfg 命令指定 SSL 代理端口和相关参数。


    ksslcfg create -f key_format -i key_and_certificate_file -p password_file -x proxy_port ssl_port
    
  5. 验证是否已正确创建该实例。

    以下命令报告的服务状态应为“online”。


    # svcs svc:/network/ssl/proxy
    
  6. 配置 Web 服务器以在 SSL 代理端口上侦听。

    编辑 /etc/apache2/http.conf 文件并添加一行,以定义 SSL 代理端口。如果使用服务器 IP 地址,Web 服务器将只在该接口上侦听。该行应如下所示:


    Listen 0.0.0.0:proxy_port
    
  7. 为 Web 服务器设置 SMF 相关性。

    Web 服务器只应在 SSL 内核代理实例之后启动。以下命令将建立该相关性。


    # svccfg -s svc:/network/http:apache2
    
    svc:/network/http:apache2> addpg kssl dependency
    
    svc:/network/http:apache2> setprop kssl/entities = fmri:svc:/network/ssl/proxy:kssl-INADDR_ANY-443
    
    svc:/network/http:apache2> setprop kssl/grouping = astring: require_all
    
    svc:/network/http:apache2> setprop kssl/restart_on = astring: refresh
    
    svc:/network/http:apache2> setprop kssl/type = astring: service
    
    svc:/network/http:apache2> end
    
  8. 启用 Web 服务器。


    # svcadm enable svc:/network/http:apache2
    

    如果未使用 SMF 启动该服务,请使用以下命令: /usr/apache2/bin/apachectl startssl


示例 2–3 配置 Apache 2.0 Web 服务器以使用 SSL 内核代理

以下命令将使用 pem 密钥格式创建一个实例。


# ksslcfg create -f pem -i cert_and_key.pem -p file -x 8080 433

Procedure如何配置 Sun Java System Web Server 以使用 SSL 内核代理

应使用此过程来改善 Sun Java System Web Server 上的 SSL 包进程的性能。有关此 Web 服务器的信息,请参见《Sun Java System Web Server 6.1 SP4 Administrator’s Guide》

开始之前

以下过程要求已安装并配置 Sun Java System Web Server。

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。�C有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”ksslcfg 命令包括在 Network Security 配置文件中。

  2. 停止 Web 服务器。

    使用管理员 Web 界面停止服务器。有关更多信息,请参见《Sun Java System Web Server 6.1 SP4 Administrator’s Guide》

  3. 确定要用于 ksslcfg 命令的参数。

    ksslcfg(1M) 手册页中列出了所有选项。必须了解的参数包括:

    • key_format-与 -f 选项一起定义证书和密钥格式。

    • token_label-与 -T 选项一起指定 PKCS#11 标记。

    • certificate_label-与 -C 选项一起选择 PKCS#11 标记的证书对象中的标签。

    • password_file-与 -p 选项一起选择文件的位置,该文件中应包括用于使用户登录到 Web 服务器所使用的 PKCS#11 标记的口令。此口令用来允许无人参与的重新引导。对该文件的权限应为 0400

    • proxy_port-与 -x 选项一起设置 SSL 代理端口。请选择标准端口 80 之外的其他端口。

    • ssl_port-定义服务器应用程序的端口。此值在 server.xml 文件中设置。通常,将此值设置为 443


    注 –

    不能为 NCA 配置 ssl_portproxy_port 值,因为 SSL 内核代理以独占方式使用这些端口。通常,端口 80 用于 NCA,端口 8080 用于 proxy_port,端口 443 用于 ssl_port


  4. 创建服务实例。

    使用 ksslcfg 命令指定 SSL 代理端口和相关参数。


    ksslcfg create -f key_format -T PKCS#11_token -C certificate_label -p password_file -x proxy_port ssl_port
    
  5. 验证是否已正确创建该实例。

    以下命令报告的服务状态应为“online”。


    # svcs svc:/network/ssl/proxy
    
  6. 配置 Web 服务器以在 SSL 代理端口上侦听。

    有关更多信息,请参见《Sun Java System Web Server 6.1 SP4 Administrator’s Guide》

  7. 启动 Web 服务器。


示例 2–4 配置 Sun Java System Web Server 以使用 SSL 内核代理

以下命令将使用 pkcs11 密钥格式创建一个实例。


# ksslcfg create -f pkcs11 -T "NSS Internal PKCS #11 Module" -C "Server-Cert" -p file -x 8080  443

在区域中使用 SSL 内核代理

SSL 内核代理在区域中工作时具有以下限制:


示例 2–5 在本地区域中配置 Apache Web 服务器以使用 SSL 内核代理

在本地区域中,先停止 Web 服务器。在全局区域中,执行配置服务的所有步骤。要为名为 apache_zone 的本地区域创建实例,请使用以下命令:


# ksslcfg create -f pem -i /zone/apache_zone/root/keypair.pem -p /zone/apache_zone/root/pass \

    -x 8080 apache_zone 443

在本地区域中,运行以下命令,以启用服务实例:


# svcadm enable svc:/network/http:apache2

高速缓存 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 头,页面将不会被高速缓存。

第 3 章 与时间有关的服务

许多数据库和验证服务都要求在网络中始终保持系统时钟同步。本章包含以下主题:

时钟同步(概述)

从 Solaris 2.6 发行版开始的 Solaris 软件中包含由特拉华大学开发的网络时间协议 (Network Time Protocol, NTP) 公共域软件。xntpd 守护进程设置并维护系统时间。xntpd 守护进程完全实现了 RFC 1305 定义的版本 3 标准。

xntpd 守护进程在系统启动时读取 /etc/inet/ntp.conf 文件。有关配置选项的信息,请参见 xntpd(1M)

在网络中使用 NTP 时请记住以下几点:

同步时钟的另一种方法是在使用 cron 的同时运行 rdate

管理网络时间协议(任务)

以下过程说明如何设置和使用 NTP 服务。

Procedure如何设置 NTP 服务器

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 创建 ntp.conf 文件。

    要确保正确执行 xntpd 守护进程,必须首先创建 ntp.conf 文件。可以将 ntp.server 文件用作模板。


    # cd /etc/inet
    
    # cp ntp.server ntp.conf
    
  3. 启动 xntpd 守护进程。


    # svcadm enable network/ntp
    

Procedure如何设置 NTP 客户机

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 创建 ntp.conf 文件。

    要激活 xntpd 守护进程,必须首先创建 ntp.conf 文件。


    # cd /etc/inet
    
    # cp ntp.client ntp.conf
    
  3. 启动 xntpd 守护进程。


    # svcadm enable network/ntp
    

使用其他与时间有关的命令(任务)

需要时可以使用以下过程更新当前时间,而不必设置 NTP。

Procedure如何与其他系统同步日期和时间

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 使用 rdate 命令重置日期和时间,以便与其他系统同步。


    # rdate another-system
    
    another-system

    其他系统的名称

  3. 确认已使用 date 命令正确重置了系统日期。

    输出中显示的日期和时间应与其他系统的日期和时间一致。


示例 3–1 与其他系统同步日期和时间

以下示例说明了如何使用 rdate 使一个系统与另一个系统的日期和时间同步。在本示例中,晚了几个小时运行的系统 earth 被重置为与服务器 starbug 的日期和时间一致。


earth# date

Tue Jun  5 11:08:27 MDT 2001

earth# rdate starbug

Tue Jun  5 14:06:37 2001

earth# date

Tue Jun  5 14:06:40 MDT 2001

网络时间协议(参考)

为使 NTP 服务运行,需要具备以下文件。

表 3–1 NTP 文件

文件名 

功能 

/etc/inet/ntp.conf

列出 NTP 的配置选项。 

/etc/inet/ntp.client

NTP 客户机的配置文件样例。 

/etc/inet/ntp.server

NTP 服务器的配置文件样例。 

/etc/inet/ntp.drift

设置 NTP 服务器上的初始频率偏移。 

/etc/inet/ntp.keys

包含 NTP 验证密钥。 

/usr/lib/inet/xntpd

NTP 守护进程。有关更多信息,请参见 xntpd(1M)

/usr/sbin/ntpdate

用于根据 NTP 设置本地日期和时间的实用程序。有关更多信息,请参见 ntpdate(1M)

/usr/sbin/ntpq

NTP 查询程序。有关更多信息,请参见 ntpq(1M)

/usr/sbin/ntptrace

用于将 NTP 主机追溯到主 NTP 服务器的程序。有关更多信息,请参见 ntptrace(1M)

/usr/sbin/xntpdc

xntpd 守护进程的 NTP 查询程序。有关更多信息,请参见 xntpdc(1M)

/var/ntp/ntpstats

用于保存 NTP 统计信息的目录。