Sun Java System Web Server 7.0 管理员指南

第 4 章 部署方案

本章介绍如何在单个节点和群集环境中部署 Sun Java System Web Server7.0。本章中将讨论以下主题:

部署体系结构

本节介绍单个节点部署体系结构。

下图表示单个节点部署设置中的 Web Server。

单个节点部署设置中的 Web Server。

在图中,Web Server 部署设置由以下部分组成:

部署概述

对于以下目的,可以考虑在单个节点上部署 Web Server:

以下流程图提供了如何在节点上部署 Web Server 的示意说明:

图 4–1 流程图说明了如何在单个节点上部署 Web 服务器

流程图说明了在节点上部署 Web 服务器的步骤。

以下各节将介绍部署过程:

部署前的要求

要在单个节点上部署 Web Server,可通过执行以下任务来准备系统:

  1. 在节点上安装 Web Server。

    如果在安装 Web Server 时选择“快速安装”选项,将会创建以下默认实体:

    • Administration Server。

    • 将创建具有一个 HTTP 侦听器的默认配置和虚拟服务器。配置和虚拟服务器的名称与主机名相同。

    • 默认配置的实例。

    有关安装 Web Server 的信息,请参见《Sun Java System Web Server 7.0 Installation and Migration Guide》中的第 2  章 “Installing the Web Server”

    有关支持的平台和系统要求的信息,请参见《Sun Java System Web Server 7.0 发行说明》中的“支持的平台”

  2. 启动 Administration Server。

    Administration Server 开始在指定的 SSL 端口上运行。

部署 Web Server

使用以下过程可在节点上部署 Web Server:

  1. 您可以使用默认配置或创建新的配置。

    如果要创建新的配置,请为配置指定唯一的名称。新配置将创建一个虚拟服务器和一个默认 HTTP 侦听器。


    注 –

    如果要使用管理控制台创建配置,向导将会提示您创建新的实例。如果要使用 CLI,必须使用 create-instance 命令显式创建该配置的实例。


    所有配置都存储在 <install_dir>/admin-server/ 目录下的 config-store 目录中。


    注意 – 注意 –

    不要编辑 config-store 目录中的任何文件。该目录中的文件由 Sun Java System Web Server 为内部使用而创建。


  2. 部署修改的配置。

群集环境

群集是多个服务器实例的集合,跨越多个节点,所有实例都运行相同的配置。群集中的所有实例配合工作,以提供高可用性、可靠性和可伸缩性。

借助负载平衡,群集通过提供故障转移和会话复制来提供不间断的服务和会话数据持久性。

硬件和软件要求

本节中介绍的 Web Server 群集使用案例由以下实体组成:

1) 四个实例(在四个相同的节点上运行) 

2) 一个 Administration Server 

3) 一个用于对 HTTP 请求进行负载平衡的反向代理 

要设置群集,需要安装了相同的操作系统版本和修补程序的两个或多个相同节点。例如,如果选择使用 Solaris® 9 SPARC® 操作系统的计算机,群集中的其他计算机也必须安装 Solaris 9 SPARC。

有关支持的平台和修补程序要求的信息,请参见《Sun Java System Web Server 7.0 发行说明》

下图描述了一个群集环境。

图 4–2 群集设置

图中表示群集设置。

在此图中,节点配置在非军事区 (De-Militarized Zone, DMZ) 中。Administration Server 则配置在防火墙,即军事区 (Militarized Zone) 的后面以限制和阻止对 Administration Server 进行常规访问。另一个节点配置为反向代理服务器。反向代理服务器驻留在 DMZ 中以增强安全性。


注 –

仅 Solaris 10 操作系统支持 Solaris zone 功能。


设置群集

本节介绍设置群集,以及启用反向代理以支持对 HTTP 请求进行负载平衡的过程。

以下流程图说明了设置群集的过程。

图 4–3 说明群集设置过程的流程图

流程图说明了设置群集的步骤。

  1. 在一个节点上安装 Web Server,使其充当群集中的 Administration Server。

  2. 在其他三个节点上安装 Web Server。选择将 Web Server 安装为管理节点的选项。在安装过程中,请选择在服务器中注册节点的选项。

  3. 请确保 Administration Server 正在使用 SSL 端口进行通信,因为管理节点只能在安全模式下在服务器中注册。

  4. 请确保安装了 Administration Server 和管理节点的所有节点上的系统日期和时间都相同。与服务器相关联的证书,是基于安装了 Administration Server 的节点的系统日期和时间来创建的。如果管理节点的系统日期早于 Administration Server,注册将失败,因为 Administration Server 的证书还未处于有效状态。因此,证书可能在已经过期的情况下被认为有效。

  5. install_dir/admin-server/bin/ 目录中启动 Administration Server。

    install_dir/admin-server/bin>./startserv

  6. 从管理节点启动 wadm 命令行工具。wadm 命令行工具位于 install_dir/bin 目录中。

    install_dir/bin>./wadm

  7. 在 Administration Server 中注册每个管理节点。使用 register-node 命令可以在服务器中注册每个节点。

    例如:


    ./wadm register-node -user=admin --host=abc.sfbay.sun.com --port=8989

    其中,

    abc.sfbay.sun.com

    是将注册节点的 Administration Server 的主机名。

    port

    是 Administration Server 的 SSL 端口号。

  8. 提示您输入管理密码时,请输入 Administration Server 的管理密码。

    Administration Server 和管理节点相互验证,方法是 Administration Server 信任管理节点的服务器证书,管理节点信任由 Administration Server 提供的客户机证书。在注册管理节点的过程中,Administration Server 将生成该管理节点的服务器证书,然后可以在管理节点中下载并安装该证书。管理节点中还将安装服务器证书的颁发者。


    注 –

    只可以通过 SSL 进行注册。


    有关注册节点的信息,请参见《Sun Java System Web Server 7.0 Installation and Migration Guide》中的“Registering the Administration Node From the Command-Line”

  9. 使用 install_dir /admin-server/bin/ 目录中的 startserv 命令启动所有的管理节点。

  10. 使用管理控制台或 CLI 在 Administration Server 中创建新的配置。

    提供新配置的配置信息,如配置名称、HTTP 侦听器端口和服务器名。

  11. 在所有节点上创建配置的实例。

  12. 在所有节点上启动实例。


    注 –

    Web Server 提供了可灵活扩展或减小群集的功能。您可以随时在群集中添加或删除实例。


配置用于进行负载平衡的反向代理

Web Server 7.0 提供了完善的内置负载平衡器(即反向代理)。反向代理是服务器群中 Web Server 的网关。通过配置反向代理,请求将被转发到多个类似配置的 Web 服务器。

使用以下过程可在 Web Server 7.0 中启用反向代理:

  1. 在要用于配置反向代理的节点上安装 Web Server。

  2. 创建配置。例如,rp

  3. 使用管理控制台选择“配置”>“虚拟服务器”>“内容处理”>“反向代理”选项卡。单击“新建”按钮。

  4. 输入反向代理 URI 和由逗号分隔的群集中所有计算机的服务器 URL。

    输入服务器 URL 的格式为 hostname:portnumber

  5. 保存所进行的更改。

  6. 部署修改的配置,以将更改应用于配置。

  7. 启动此修改的配置的所有实例。

这将结束用于对 HTTP 请求进行负载平衡的反向代理的配置。

会话复制

会话复制是一种机制,用于复制存储在不同实例的会话中的数据。但是,所复制的实例必须为相同群集的一部分。在群集环境中启用会话复制时,将会复制所复制的实例中的完整会话数据。但是,会话复制操作不会复制会话中不可序列化的属性和任何特定于实例的数据。

会话复制和负载平衡为 Web 应用程序提供了很好的故障转移功能。

会话复制和故障转移操作

本节将详细介绍会话复制操作。

Web 请求结束时,Web Server 将确定是否需要通过会话复制配置(存储在服务器配置文件 server.xml 中)来复制会话数据。

假设存在由四个实例构成一个群集的一个使用案例,并且 Administration Server 中启用了会话复制。

由四个节点上运行的四个实例(A、B、C 和 D)构成的 Web Server 群集中的会话复制过程如下:

Web Server 群集环境中的故障转移过程如下:

Web Server 7.0 不支持会话复制中的以下功能:

启用会话复制

可以使用管理控制台或 CLI 在群集中启用会话复制。在启用会话复制之前,请确保浏览器启用了 cookie。

server.xml 文件包含与会话复制相关的信息。以下所示为启用了会话复制的一个 server.xml 文件样例:

<cluster>
		<local-host>hostA</local-host>
			<instance>
         <host>hostB</host>
      </instance>
      <instance>
          <host>hostC</host>
      </instance>
       <instance>
          <host>hostD</host>
      </instance>
      <instance>
           <host>hostA</host>
    <session-replication/>
</cluster>
			

如果未对以下元素使用默认值,这些元素的条目将在 server.xml 配置文件中不可用:

Port number(默认值为 1099)

Protocol(默认值为 jrmp

Encrypted(默认值为 false)

Getattribute Triggers Replication(默认值为 true)

Replica Discovery MaxHops(默认值为 –1)

Startup Discovery Timeout(默认值为 ?)

Cookie Name(默认值为 CLUSTERSESSIONLOCATOR

有关这些会话复制属性的更多信息,请参见《Sun Java System Web Server 7.0 Administrator’s Configuration File Reference》

配置 Web 应用程序进行会话复制

要使服务器复制会话,必须为 Web 应用程序启用会话复制。

  1. 要为 Web 应用程序启用会话复制,请修改位于 <web-application>/WEB-INF 目录中的 sun-web.xml 配置文件。

    需要在 sunweb.xml 中进行的修改如下:

    将元素 <session-manager/> 更改为 <session-manager persistence-type="replicated">

    以下所示为启用了会话复制的一个 sun-web.xml 文件样例:

    <sun-web-app>
    		<session-config>
         <session-manager persistence-type="replicated">
         </session-manager>
      </session-config>
    </sun-web-app>
  2. 修改 sunweb.xml 文件后,请重新生成 Web 应用程序,或对应用程序重新进行 jar 操作以创建 Web 应用程序归档(war 文件)。

  3. 重新启动所有实例,以使 Web 应用程序在所有实例中可用。

  4. 该 Web 应用程序可从群集中的所有节点进行访问。要访问该 Web 应用程序,请在浏览器中键入以下内容:

    http://webserver-name/webapplication-name/


    注 –

    目录可以为所有节点访问是存储要进行部署的应用程序的最佳方法。但是,该目录对 Administration Server 来说,无需可访问。建议对大小超过 1 MB 的 Web 应用程序进行基于目录的部署。

    要创建搜索集合,请确保该搜索集合驻留在所有节点可以访问的公共目录中。


监视群集

Administration Server 可以监视群集中的所有实例。Web Server 的监视功能提供可用于以下操作的运行时组件和进程的状态信息:

 

Solaris Zones

Solaris Zones 是 Solaris 10 的应用程序和资源管理功能。区域环境通常由以下资源组成,例如进程管理、内存、网络配置、文件系统、软件包注册、用户帐户、共享库和某些情况下安装的程序。这些区域提供了在 Solaris 实例中创建虚拟操作系统环境的方法,从而使一个或多个进程可以在与系统中的其他活动相互隔离的情况下运行。它还提供了一个抽象层,用于将应用程序与部署应用程序的计算机的物理属性(如物理设备路径、网络接口名称和网络路由表)相隔离。此隔离可防止给定区域中运行的进程监视或影响其他区域中运行的进程,无论用户 ID 和其他凭证信息是什么。

区域是一个或多个应用程序可以在其中运行的沙箱,不会影响或干涉系统的其他部分。

有关 Solaris Zones 的详细信息,请参见 http://docs.sun.com/app/docs/doc/817-1592 网站上的 System Administration Guide — Solaris Containers-Resource Management and Solaris Zones