Sun ONE logo      上一个      目录      索引      下一个     

Sun ONE Web Server 6.1 管理员指南

第 13 章
使用虚拟服务器

本章介绍了如何使用 Sun ONE Web Server 设置和管理虚拟服务器。

本章包括以下部分:


虚拟服务器概述

使用虚拟服务器时,您只需安装一台服务器便可以为多个公司或个人提供域名、IP 地址以及某些服务器监视功能。对于用户来说,他们就像拥有了自己的 Web 服务器,只不过是由您提供硬件并进行基本的 Web 服务器维护。


如果未使用虚拟服务器,您仍然可以使用 Class Manager 中的项目为 Web 服务器实例配置内容、程序和其他功能。安装 Web 服务器时,将为该实例创建缺省的虚拟服务器。您可以使用虚拟服务器用户界面管理该缺省虚拟服务器的内容和服务。


要设置虚拟服务器,需要设置以下内容:

虚拟服务器的设置存储在 server_root/server_ID/config 目录下的 server.xml 文件中。虽然您可以编辑此文件,但是使用虚拟服务器无需编辑此文件。有关此文件以及如何对其进行编辑的详细信息,请参见 Sun ONE Web Server 6.1 Administrator's Configuration File Reference

本部分包括以下主题:

多个服务器实例

过去的 Sun ONE Web Server 版本在为虚拟服务器配置独特信息方面并不十分灵活。用户经常会为了能以直接方式使各服务器分别具有单独的配置信息,而创建多个单独的服务器实例。从 Sun ONE Web Server 6.0 版开始,每个虚拟服务器类都具有了单独的配置信息。该版本仍然支持多个服务器实例,但如果要使多台服务器都具有独立的配置信息,那么最好选择虚拟服务器。

虚拟服务器类

虚拟服务器被归入到不同的类。使用类可以同时配置类似的虚拟服务器,因此不必逐个配置每台服务器。尽管一个类中的所有虚拟服务器共享同样的基本配置信息,但是您也可以为每台虚拟服务器设置变量,更改其配置。如果不希望虚拟服务器共享配置信息,可以在每个虚拟服务器类中创建单个虚拟服务器。但是如果虚拟服务器共享类似的特性,则可以将它们编组在一个类中,统一进行配置。

例如,如果您为 Internet 服务提供商 (ISP) 工作,希望为不同的客户提供不同级别的宿主服务并收取不同的费用,则可以为客户设置多个虚拟服务器类。您可以为某个虚拟服务器类启用 Java Servlet 和 JSP,而为另一个较便宜的虚拟服务器类禁用 Java Servlet 和 JSP。

通过命名虚拟服务器类并创建文档根目录可以创建虚拟服务器类,默认情况下,属于该类的所有虚拟服务器都在此文档根目录下拥有自己的文档根目录。您可以使用 $id 变量,以便类中每个虚拟服务器都在类的文档根目录中拥有独立的文档根目录。有关详细信息,请参见文档根目录

创建虚拟服务器类后,您可以将服务与其关联。您可以为虚拟服务器类打开或配置下列类型的服务:

obj.conf 文件

类中所有虚拟服务器都共享 obj.conf 文件,该文件用于存储有关虚拟服务器类的信息。有些信息存储在变量中,这样单个虚拟服务器即可实时替换特定变量值。

有关 obj.conf 和变量的详细信息,请参见 NSAPI Programmer's Guide。有关在用户界面中使用变量的详细信息,请参见使用变量

类中的虚拟服务器

属于某个类的虚拟服务器称为该类的成员。有些虚拟服务器设置是为类中的所有虚拟服务器配置的,有些设置则是为某个虚拟服务器单独配置的。这些设置在 Class Manager 的“Virtual Servers”选项卡中进行配置。有关详细信息,请参见第 14 章“创建和配置虚拟服务器”

缺省类

安装 Sun ONE Web Server 时,安装程序将自动创建一个类(称为 defaultclass)。默认情况下,它包含服务器实例的一个虚拟服务器成员。您可以向缺省类中添加其他虚拟服务器,但不能从该类中删除缺省的虚拟服务器。也不能删除缺省类。

侦听套接字

服务器与客户机之间的连接在侦听套接字上进行。您创建的每个侦听套接字都有一个 IP 地址、端口号、服务器名和缺省虚拟服务器。要使侦听套接字侦听计算机给定端口上所有已配置的 IP 地址,请使用 0.0.0.0、any、ANY 或 INADDR_ANY 作为 IP 地址。

安装 Sun ONE Web Server 时将自动创建一个侦听套接字 (ls1)。此侦听套接字使用 IP 地址 0.0.0.0 和安装过程中指定为 HTTP 服务器端口号的端口号(缺省值为 80)。不能删除缺省的侦听套接字。如果您使用的不是虚拟服务器,这一个侦听套接字就足够了。但是如果您使用的是虚拟服务器,则可能需要为虚拟服务器创建多个侦听套接字。

由于侦听套接字是 IP 地址和端口号的组合,因此您可以拥有多个 IP 地址相同但端口号不同(或 IP 地址不同但端口号相同)的侦听套接字。例如,您既可以使用 1.1.1.1:81 和 1.1.1.1:82,也可以使用 1.1.1.1:81 和 1.2.3.4:81,只要将计算机配置为响应这两个地址即可。

此外,还应在侦听套接字中指定接收方线程(有时称作接受线程)的数目。接收方线程是等待连接的线程。它用于接受连接并将其置于队列中以便随后由工作线程拾取。理想情况下,您需要有足够的接受线程,以便在新请求传入时始终有一个可用的线程。但是,线程数目不能过多,否则会占用过多的系统资源。缺省线程数为 1。最好是系统上的每个 CPU 都有一个接受线程。如果发现性能受到影响,可以调整此值。

虚拟服务器

要创建虚拟服务器,必须先确定它所属的类,然后确定其类型。要创建虚拟服务器,只需要指定一个虚拟服务器 ID 以及一个或多个 URL 主机。

本部分包括以下主题:

虚拟服务器的类型

在 Sun ONE Web Server 6.0 以前的版本中,有两种类型的虚拟服务器:硬件虚拟服务器和软件虚拟服务器。硬件虚拟服务器与唯一 IP 地址相关联。软件虚拟服务器没有唯一的 IP 地址,但有唯一的 URL 主机。

在 Sun ONE Web Server 6.0 和 Sun ONE Web Server 6.1 中,这些概念都不再准确。所有虚拟服务器都需要指定 URL 主机,但虚拟服务器可能还与基于侦听套接字的 IP 地址相关联。

当新请求传入时,服务器将根据 IP 地址或 Host 标头中的值确定将此请求发送到哪个虚拟服务器。首先,它将提取 IP 地址。有关详细信息,请参见选择用于处理请求的虚拟服务器

基于 IP 地址的虚拟服务器

要使一台计算机具有多个 IP 地址,必须通过操作系统对其进行映射或提供附加插卡。要通过操作系统设置多个 IP 地址,请使用“网络控制面板”(Windows) 或 ifconfig 实用程序 (UNIX/Linux)。请注意,ifconfig 的用法因平台而异。有关详细信息,请参见操作系统文档。

通常,要创建基于 IP 地址的虚拟服务器,可创建一个用于侦听特定 IP 地址的侦听套接字。侦听套接字的缺省虚拟服务器是基于 IP 地址的虚拟服务器。有关如何部署虚拟服务器的详细信息,请参见部署虚拟服务器

基于 URL 主机的虚拟服务器

可以通过提供唯一的 URL 主机来设置基于 URL 主机的虚拟服务器。Host 请求标头的内容将服务器定向到正确的虚拟服务器。

例如,如果要为用户 aaa、bbb 和 ccc 设置虚拟服务器以便每个用户都可以拥有单个域名,首先对 DNS 进行配置,使其能够识别每个用户的 URL(www.aaa.comwww.bbb.comwww.ccc.com),然后将这些 URL 解析为所使用的侦听套接字的 IP 地址。然后对每个虚拟服务器的 URL 主机进行正确的设置(例如,www.aaa.com)。

由于基于 URL 主机的虚拟服务器使用 Host 请求标头将用户定向到正确的页面,因此并非所有客户机软件都可以与它们一起工作。不支持 HTTP Host 标头的旧客户机软件无法正常运行。这些客户机将接收侦听套接字的缺省虚拟服务器。

缺省虚拟服务器

系统使用 Host 请求标头选择基于 URL 主机的虚拟服务器。如果最终用户的浏览器未发送 Host 标头,或者服务器找不到指定的 Host 标头,则缺省虚拟服务器将处理该请求。

缺省虚拟服务器由侦听套接字设置。可在创建侦听套接字时指定缺省虚拟服务器。可以随时更改此缺省虚拟服务器。

选择用于处理请求的虚拟服务器

服务器处理请求之前,必须先通过侦听套接字接受该请求,再将其定向到正确的虚拟服务器。

然后按如下方式选择虚拟服务器:

如果为 SSL 侦听套接字配置了虚拟服务器,则在服务器启动时将检查该虚拟服务器的 URL 主机与证书的主题模式是否匹配,如果不匹配,将生成警告并写入错误日志。

确定虚拟服务器后,服务器将执行虚拟服务器所属的虚拟服务器类的 obj.conf 文件。有关服务器如何确定在 obj.conf 文件中执行哪些指令的详细信息,请参见 Sun ONE Web Server 6.1 NSAPI Programmer's Guide。

文档根目录

主文档目录(即文档根目录)是包含所有要提供给远程客户机的虚拟服务器文件的中心目录。

使用文档根目录可以轻松地限制对虚拟服务器上的文件的访问。还可以轻松地将文档移动到新目录(可能位于其他磁盘上)而无需更改任何 URL,因为在 URL 中指定的路径相对于主文档目录。

例如,如果文档目录为 C:\sun\servers\docs,则请求(例如 http://www.sun.com/products/info.html)将通知服务器在 C:\sun\servers\docs\products\info.html 中查找该文件。如果更改文档根目录(即移动所有文件和子目录),则只需更改虚拟服务器使用的文档根目录,而不用将所有 URL 均映射到新目录,或以某种方式通知客户机在新目录中查找。

安装 Sun ONE Web Server 时,应为 Web 服务器实例指定一个文档根目录。该目录将成为缺省类的文档根目录。您可以在类级别上更改该目录或在单个虚拟服务器级别上覆盖该目录。

添加类时,还需要指定文档目录。该目录是绝对路径。但如果您只输入绝对路径,则属于该类的所有虚拟服务器的文档根目录将缺省为同一路径。如果您在文档根目录绝对路径的末尾添加变量 $id,则每个虚拟服务器都将有一个缺省文档根目录 class_doc_root/virtual_server_ID。例如,如果类的文档目录是 /sun/servers/docs/$id,则属于该类的虚拟服务器 vs1 的缺省文档目录为 /sun/servers/docs/vs1

有关变量的详细信息,请参见使用变量

您也可以在单个虚拟服务器级别上覆盖类的缺省文档目录。

日志文件

创建新的虚拟服务器时,缺省情况下,日志文件与服务器实例的日志文件是同一文件。大多数情况下,用户可能希望每个单独的虚拟服务器都有自己的日志文件。要进行此设置,可以更改每个虚拟服务器的日志路径。

有关详细信息,请参见配置虚拟服务器的日志设置

从上一个版本移植虚拟服务器

如果您在 iPlanet Web Server 4.1 版中使用了虚拟服务器,则可以使用移植工具将其移植到当前版本。有关详细信息,请参见 Installation and Migration Guide。


在虚拟服务器中使用 Sun ONE Web Server 的功能

Sun ONE Web Server 提供了很多可用于虚拟服务器的功能(例如,SSL 和访问控制)。很多功能涉及所有服务器、服务器实例、虚拟服务器类或单个虚拟服务器的配置。以下各部分介绍了这些功能,并介绍了如何查找详细信息。

本部分包括以下主题:

在虚拟服务器中使用 SSL

如果要在虚拟服务器上使用 SSL,通常应使用基于 IP 地址的虚拟服务器。通常使用端口 443。在基于 URL 主机的虚拟服务器上不宜使用 SSL,因为 Sun ONE Web Server 必须先读取请求,然后才能确定将请求发送到哪个 URL 主机。服务器读取请求与进行安全信息交换的初始信号握手同时发生。

唯一的例外是基于 URL 主机的虚拟服务器都具有相同的 SSL 配置,包括使用“通配符证书”的相同服务器证书。有关详细信息,请参见第 6 章“使用证书和密钥”

在虚拟服务器中实现 SSL 的方法之一是使用两个侦听套接字,一个使用 SSL 并侦听端口 443,另一个不使用 SSL。用户通常通过非 SSL 侦听套接字访问虚拟服务器。当必须使用安全事务时,可以单击 Web 页上的按钮,以启动安全事务。此后,请求将通过安全侦听套接字来进行。

由于 SSL 事务的速度比非 SSL 事务慢很多,因此只在必要时使用 SSL 事务。其他情况下将使用更快的非 SSL 连接。

有关 Sun ONE Web Server 和虚拟服务器安全设置及使用方面的详细信息,请参见第 6 章“使用证书和密钥”。有关在虚拟服务器中配置 SSL 的示例图表,请参见实例 2:安全服务器

在虚拟服务器中使用访问控制

使用虚拟服务器,您能够以每个虚拟服务器为基础来设置访问控制。甚至可以对其进行配置,以便每个虚拟服务器可以使用 LDAP 数据库对用户和组进行验证。有关详细信息,请参见控制虚拟服务器的访问

在虚拟服务器中使用 CGI

可以在虚拟服务器上使用 CGI。出于访问及安全原因,有许多项设置可供您进行配置。

有关设置和使用 CGI 的详细信息,请参见安装 CGI 程序

在虚拟服务器中使用配置式样

使用配置式样可以很容易地将一组选项应用到各个虚拟服务器维护的特定文件或目录。有关使用配置式样的详细信息,请参见“应用配置式样”。


使用虚拟服务器用户界面

要创建和编辑虚拟服务器,您可以使用用户界面或命令行实用程序。

管理虚拟服务器的用户界面包括三个部分:

此外,还可以使用拥有单个虚拟服务器的最终用户的用户界面。有关详细信息,请参见允许用户监视单个虚拟服务器

本部分包括以下主题:

Class Manager

要访问 Class Manager,请执行下列步骤:

  1. 在 Server Manager 中单击“Virtual Server Class”选项卡。
  2. 单击“Manage Classes”。
  3. 选择一个类并单击“Manage”。

您也可以在服务器的树视图中单击类名,或单击位于 Server Manager 右上角的“Class Manager”按钮链接。

Virtual Server Manager

要访问 Virtual Server Manager,请执行下列步骤:

  1. 在 Class Manager 中单击“Virtual Server Tab”。
  2. 单击“Manage Virtual Servers”。
  3. 选择一个虚拟服务器并单击“Manage”。

您也可以在服务器的树视图中单击虚拟服务器名称。

您可以使用命令行实用程序 HttpServerAdmin 执行虚拟服务器任务(与使用用户界面执行的任务相同)。有关命令行实用程序 HttpServerAdmin 的详细信息,请参见 HttpServerAdmin(虚拟服务器管理)

使用变量

您可以使用变量给出类的虚拟服务器专用值,而不必分别定义每个值。变量在 obj.conf 文件中进行定义。您可以定义自己的变量,但用户界面无法不识别这些变量。用户界面中最有用的变量是 $id,它表示虚拟服务器的 ID。输入这个变量后,服务器将使用该值取代单个虚拟服务器的 ID。

您还会用到其他几个变量(例如 $accesslog [每个虚拟服务器的访问日志的路径] 和 $docroot [每个虚拟服务器的文档根目录的路径],但只有 $id 变量需要输入到字段中。

有关变量的详细信息,请参见 Sun ONE Web Server 6.1 NSAPI Programmer's Guide。

动态重新配置

动态重新配置使您可以对活动 Web 服务器的配置进行更改,而无需停止并重新启动 Web 服务器以使更改生效。您可以动态更改 server.xml 及其关联文件中的所有配置设置和属性,而无需重新启动服务器。因此无需重新启动服务器即可应用在虚拟服务器用户界面中所做的所有更改。更改后,您可以使用重新配置脚本或用户界面动态重新配置服务器。

在 UNIX 平台上,动态重新配置脚本是一个名为“reconfig”的 shell 脚本,它位于每个实例的目录中。该脚本无命令行变量。只需从服务器实例的目录键入“reconfig”即可运行重新配置脚本。

在 Windows 中,动态重新配置脚本是一个名为“reconfig.bat”的批处理文件,它位于每个实例的目录中。该交本无命令行变量。只需从服务器实例的目录键入“reconfig”或“reconfig.bat”即可运行重新配置脚本。

运行该脚本时,将启动服务器的动态重新配置(与用户界面相似)并显示与重新配置相关的服务器信息。

要访问动态重新配置屏幕,请单击“Server Manager”、“Class Manager”和“Virtual Server Manager”右上角的“Apply”链接,然后单击“Apply Changes”中的“Load Configuration Files”按钮。如果安装新配置时出错,则恢复为以前的配置。


设置虚拟服务器

要设置虚拟服务器,请执行以下步骤:

  1. 创建一个侦听套接字
  2. 创建一个虚拟服务器类
  3. 为该类配置服务
  4. 在虚拟服务器类中创建虚拟服务器
  5. 配置虚拟服务器

请注意,创建侦听套接字时,必须在缺省虚拟服务器字段中输入一个现有的虚拟服务器。可以使用安装服务器时创建的虚拟服务器,然后在创建其他虚拟服务器后,根据需要返回并对其进行更改。

创建侦听套接字

要创建侦听套接字,请执行以下步骤:

  1. 在 Server Manager 中单击“Preferences”选项卡。
  2. 单击“Add Listen Socket”。
  3. 填写各个字段。
  4. 侦听套接字必须有一个唯一的端口号和 IP 地址组合。可以使用 IPV4 地址,也可以使用 IPV6 地址。如果要为基于 IP 地址的虚拟服务器创建侦听套接字,则 IP 地址必须为 0.0.0.0、ANY 或 INADDR_ANY,这意味着它将侦听端口上所有的 IP 地址。

    您也可以为此侦听套接字启用安全性 (SSL)。

    “Server Name”字段在服务器发送给客户机的 URL 中指定主机名。这会影响服务器自动生成的 URL,但不会影响存储在服务器中的目录和文件的 URL。如果服务器使用别名,则此名称应为别名。

  5. 单击“OK”。

创建虚拟服务器类

要创建虚拟服务器类,请执行以下步骤:

  1. 在 Server Manager 中单击“Virtual Server Class”选项卡。
  2. 单击“Add Class”。
  3. 对该类进行命名。
  4. 为该类插入文档根目录。
  5. 该目录必须已经存在。除非您另外指定,否则此类的所有虚拟服务器的文档根目录都位于此绝对路径中。如果您使用 /$id 作为路径的末尾部分,则将在类的文档根目录路径中自动创建为虚拟服务器 ID 命名的文档根目录文件夹。

  6. 单击“OK”。

创建虚拟服务器类后,选择与该类关联的服务。有关详细信息,请参见“内容管理”。

编辑或删除虚拟服务器类

要编辑虚拟服务器类的设置,请执行以下步骤:

  1. 在 Server Manager 中单击“Virtual Server Class”选项卡。
  2. 单击“Edit Classes”。
  3. 从所需的类旁边的下拉列表中,选择“Edit”或“Delete”。
  4. 请注意,不能删除缺省类。

  5. 使用“Document Root”字段将路径改为类的缺省文档根目录的绝对路径。
  6. 缺省情况下,将在此目录中创建该类的虚拟服务器的文档根目录。

  7. 如果希望该虚拟服务器类使用接受语言标头分析,请在“Accept Language”字段输入“On”。
  8. 缺省值为“Off”。

  9. 如果要更改与某个类关联的 CGI 缺省值,请单击“Advanced”。
  10. 将显示带有 CGI 缺省值的窗口。编辑各字段,然后单击“OK”返回“Edit a Class”窗口。使用“Reset”按钮可以退回去重新进行更改。

  11. 单击“OK”。类即被更改或删除。

指定与虚拟服务器类关联的服务

为某类虚拟服务器启用的服务可以作为区分不同类虚拟服务器的特征。例如,某类虚拟服务器可能启用了 CGI,而另一类未启用。有关设置服务的详细信息,请参见内容管理

创建虚拟服务器

设置虚拟服务器类后,即可创建虚拟服务器。由于虚拟服务器是特定虚拟服务器类的成员,因此应在 Class Manager 中创建虚拟服务器。

有关详细信息,请参见创建虚拟服务器

指定与虚拟服务器关联的设置

您可以在虚拟服务器级别上覆盖某些类设置,也可以配置附加设置。请在 Class Manager 中配置这些设置。

有关详细信息,请参见创建虚拟服务器


允许用户监视单个虚拟服务器

各个虚拟服务器的管理员可以通过特殊的用户界面查看虚拟服务器的设置以及访问日志和错误日志。例如,如果您的内部网中三个不同的部门使用三个不同的虚拟服务器,则每个部门都可以单独查看他们的设置和日志文件。

出于安全的考虑,该管理用户界面位于一个单独的端口(既不是管理服务器端口,也不是 Web 服务器实例端口)。

该用户界面在管理服务器中的虚拟服务器上运行。缺省情况下将对此虚拟服务器进行设置,其名称为 useradmin。必须在管理服务器中设置一个侦听套接字(该侦听套接字必须独立于运行管理服务器的侦听套接字),以便用户可以访问虚拟服务器管理用户界面,而无需访问管理服务器端口。

下图显示了各个虚拟服务器的管理员访问 useradmin 虚拟服务器以查看各自虚拟服务器信息的情况。

打开虚拟服务器时,如果您在 Administration Server 的 /config/server.xml 文件中编辑某些设置,则用户可以通过下列 URL 对其进行管理:

server_name:port/user-app/server_instance/virtual_server_ID

例如:

sun:9999/user-app/sun/vs2

服务器实例不包含服务器实例名称的“https”部分。

要确定虚拟服务器的 ID,请查看服务器实例的 server.xml 文件。

下图显示了最终用户看到的用户界面:

安装 Sun ONE Web Server 6.1 后,您会发现 server_root/https-admserv/config/server.xml 文件包含某些注释项,它们用于创建:

要设置 useradmin,需要取消这些项的注释。

要将服务器配置为可以使用此功能,请执行以下步骤:

  1. 创建一个新的侦听套接字,它运行的端口应不同于管理服务器所使用的端口。
  2. 例如,如果管理服务器在端口 8888 上运行,则新的侦听套接字必须使用其他端口号。使用不同的侦听套接字有助于确保管理服务器的安全。

    出于安全考虑,您不能通过用户界面添加此侦听套接字,而应该在管理服务器的 server.xml 文件中进行添加。

  3. 打开管理服务器的 server.xml 文件(位于 server_root/https-admserv/config/server.xml)。
  4. 取消对包含 LSVSCLASSVS 元素缺省值的注释行的注释。示例:
  5. <!--

    <LS id="ls2" port="9999" servername="plaza" defaultvs="useradmin"/>

    -->

    <!--

    <VSCLASS id="userclass" objectfile="userclass.obj.conf">

    <VS id="useradmin" connections="ls2" mime="mime1" aclids="acl1" urlhosts="plaza">

    <PROPERTY name="docroot" value="/export1/wsinst/docs"/>

    <USERDB id="default"/>

    <WEBAPP uri="/user-app" path="/export1/wsinst/bin/https/webapps/user-app"/>

    </VS>

    </VSCLASS>

    -->

    这将启用 useradmin,它将在独立的端口上创建(出于安全考虑)。

  6. 将更改保存到 server.xml
  7. 重新启动 Administration Server 以应用更改。
  8. 对于任何服务器实例中的任何虚拟服务器,都应该能够使用以下 URL 访问管理员 UI:
  9. server_name:port/user-app/server_instance/virtual_server_ID

    例如:

    plaza:9999/user-app/plaza/https-plaza

访问控制

要防止未经授权的用户擅自管理虚拟服务器,您可以设置 ACL。由于每个虚拟服务器的 URI 都是唯一的,因此可以对访问进行设置,以便只有正确的管理员才能访问虚拟服务器的设置。

有关详细信息,请参见第 9 章“控制对服务器的访问”

日志文件

每个虚拟服务器均可以有自己的日志文件。缺省情况下,所有虚拟服务器共享服务器实例的日志文件。如果允许用户查看其日志文件,则大多数情况下都必须更改日志文件设置,以使每个虚拟服务器拥有自己的访问和错误日志。

有关详细信息,请参见配置虚拟服务器的日志设置


部署虚拟服务器

Sun ONE Web Server 的虚拟服务器体系结构非常灵活。服务器实例可以拥有任意数量的侦听套接字(安全的和不安全的)。您可以使用基于 IP 地址的虚拟服务器,也可以使用基于 URL 主机的虚拟服务器。

此外,您可以将具有类似设置的虚拟服务器归入到任意数量的虚拟服务器类。虚拟服务器类中的所有虚拟服务器都共享 obj.conf 中相同的请求处理指令。

每个虚拟服务器都可以(而非必须)拥有自己的 ACL 列表、mime.types 文件和 Java Web 应用程序集。

此设计提供了最大的灵活性,使您可以为各种应用程序配置服务器。以下示例介绍了一些可能适用于 Sun ONE Web Server 的配置。

实例 1:缺省配置

安装新的 Sun ONE Web Server 后,您便拥有了一个服务器实例。它只使用一个侦听套接字侦听计算机配置的任何 IP 地址的端口 80 或安装时所选的任何端口。

本地网络中的某些机制为计算机配置的每个地址都建立了名称-地址映射。以下示例中的计算机有两个网络接口:地址 127.0.0.1 上的回送接口(即使在没有网卡的情况下仍然存在的接口)和地址 10.0.0.1 上的以太网接口。

名称 example.com 通过 DNS 映射为 10.0.0.1。侦听套接字配置为侦听计算机配置的任何地址的端口 80(“ANY:80”或“0.0.0.0:80”)。

在此配置中,到以下地址的连接将到达服务器并由虚拟服务器 VS1 处理。

此配置适用于传统的 Web 服务器。无需添加附加的虚拟服务器或侦听套接字。可以通过更改 defaultclass(VS1 是 defaultclass 的成员)及 VS1 本身的设置来配置服务器的设置。

实例 2:安全服务器

如果要在缺省配置中使用 SSL,只需将侦听套接字更改为安全模式。这与以前版本的 Sun ONE Web Server 中设置安全的方法类似。

还可以添加一个为 ANY:443 配置的新的安全侦听套接字并将 VS1 关联到新的侦听套接字。虚拟服务器现在具有两种侦听套接字,一种使用 SSL,另一种不使用 SSL。现在,使用 SSL 和没有使用 SSL 的服务器将提供相同的内容,也就是说 http://example.com/https://example.com/ 提供的内容相同。

请注意,SSL 参数被附加到侦听套接字。因此,所有虚拟服务器只能有一组 SSL 参数配置为特定侦听套接字。

实例 3:内部网宿主

一个更复杂的 Sun ONE Web Server 配置是服务器在内部网部署中支持几个虚拟服务器。例如,假设您有三个内部站点,员工可在这些站点中查找其他用户的电话号码、查看校园地图以及跟踪发送到信息服务部门的请求的状态。以前(在本示例中),这些站点以三个不同的计算机为宿主,这些计算机映射为名称 phone.example.commaps.example.comis.example.com

为了将硬件和管理开销减少到最低程度,用户希望将这三个站点合并为计算机 example.com 上的一个 web 服务器。可以使用以下两种方法进行此设置:使用基于 URL 主机的虚拟服务器或使用单独的侦听套接字。两者都有明显的优点和缺点。

尽管基于 URL 主机的虚拟服务器易于设置,但它们具有以下缺点:

您也可以设置基于 IP 地址的配置,每个地址一个侦听套接字:

基于 IP 地址的虚拟服务器的优点包括:

缺点包括:

两种配置都要求为三种名称设置名称-地址映射。在基于 IP 地址的配置中,每个名称都映射为不同的地址。必须对主机进行设置,才能接收所有这些地址上的连接。在基于 URL 主机的配置中,所有名称都可以映射为同一地址(计算机最初具有的地址)。

具有多个侦听套接字的配置所带来的性能增益可能最少,因为服务器不必查明传入请求的地址。但是由于其他接收方线程,使用多个侦听套接字也将导致额外负担(内存和调度)。

实例 4:海量宿主

海量宿主是一个可以启用许多低通信量虚拟服务器的配置。例如,ISP(承载许多低通信量的个人主页)便属于海量宿主。

虚拟服务器通常基于 URL 主机并属于多个虚拟服务器类之一,这取决于所提供的服务的级别。例如,可能有一个类只允许静态内容,而另一个类允许静态内容和 CGI。

请注意,安装服务器 VS1 时安装的虚拟服务器仍然存在于 defaultclass 中。



上一个      目录      索引      下一个     


版权所有 2004 Sun Microsystems, Inc.。保留所有权利。