系统管理指南:网络服务

管理 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