Sun Java System Web Server 7.0 管理员指南

第 9 章 管理服务器内容

本章介绍如何配置和管理虚拟服务器中的内容。

配置文档目录

主文档目录(也称为文档根目录)是您存储要提供给远程客户机的所有文件的中心目录。

除主文档目录外,您还可以创建文档目录。通过执行此操作,您可以让其他用户管理文档组,而无需授予他们访问您主文档根目录的权限。

Procedure创建文档目录

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取可用的配置。

  2. 选择虚拟服务器。

    选择需要为其添加新文档目录的虚拟服务器。单击“虚拟服务器”选项卡为选定的配置获取已配置虚拟服务器的列表。

  3. 单击“内容处理”>“文档目录”选项卡。

  4. 单击“新建”按钮。配置以下参数:

    • URL 前缀 — 需映射至目录的 URI 前缀。

    • 目录路径 — 服务器的绝对路径和用于存储文档的有效目录。


    注 –

    使用 CLI

    要通过 CLI 创建文档目录,请执行以下命令:


    wadm> create-document-dir --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 
    --uri-prefix=/config1_uri --directory=../docs1

    请参见 CLI 参考 create-document-dir(1)


更改默认 MIME 类型

向客户机发送文档时,服务器中的某一部分将标识该文档的类型,从而使客户机能够正确地显示文档。但是,服务器有时无法确定文档的正确类型,因为服务器中没有定义该文档的扩展名。在这种情况下,将发送默认值。

默认值通常为 text/plain,但是您应当将其设置为服务器中存储的最常见的文件类型。下面列出了一些常用的 MIME 类型:

  • text/plain

  • text/html

  • text/richtext

  • image/tiff

  • image/jpeg

  • image/gif

  • application/x-tar

  • application/postscript

  • application/x-gzip

  • audio/basic

Procedure更改默认 MIME 类型

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取可用的配置。

  2. 选择虚拟服务器。

    单击“虚拟服务器”选项卡为选定的配置获取已配置虚拟服务器的列表。

  3. 单击“内容处理”>“常规”选项卡。

  4. 更改“其他”部分下的“默认 MIME 类型”值。


    注 –

    使用 CLI

    要通过 CLI 创建 MIME 类型,请执行以下命令:


    wadm> create-mime-type --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1 --extensions=sxc application/sxc

    请参见 CLI 参考 create-mime-type(1)

    您无需为每台虚拟服务器创建单独的 MIME 类型文件。相反,可以根据需要创建任意数量的 MIME 类型文件,然后将它们与一台虚拟服务器相关联。默认情况下,服务器中存在一个 MIME 类型文件 (mime.types),并且无法删除。


自定义用户公共信息目录 (UNIX/Linux)

有时用户希望维护自己的 Web 页面。您可以配置公共信息目录,使服务器中的所有用户都可以创建主页和其他文档,而无需您的介入。

通过此系统,客户机可以使用特定的 URL 来访问您的服务器,服务器会将该 URL 识别为公共信息目录。例如,假设您选择了前缀 ~ 和目录 public_html。如果收到一个对 http://www.sun.com/~jdoe/aboutjane.html 的请求,服务器将认为 ~jdoe 指向一个用户的公共信息目录。服务器将在系统的用户数据库中查找 jdoe 并找到 Jane 的主目录。然后,服务器会查看 ~/jdoe/public_html/aboutjane.html

要将服务器配置为使用公共目录,请执行以下步骤:

Procedure配置文档目录

  1. 在“虚拟服务器”页面中,单击“内容处理”选项卡。

  2. 单击“文档目录”。

  3. 在“用户文档目录”下,选择用户 URL 前缀。

    该前缀通常为 ~,因为波浪号字符是用于访问用户主目录的标准 UNIX/Linux 前缀。

  4. 在用户主目录中,选择服务器要在其中查找 HTML 文件的子目录。

    通常,该目录为 public_html

  5. 指定密码文件。

    服务器需要知道可以在何处找到列出了系统用户的文件。服务器使用该文件来确定有效的用户名并找到其主目录。如果您将系统密码文件用于此用途,服务器将使用标准库调用来查找用户。您也可以创建另一个用户文件来查找用户。您可以指定该用户文件的绝对路径。

    该文件中的每一行都应具有以下结构(以 * 表示 /etc/passwd 文件中不需要的元素):

    username:*:*:groupid:*:homedir:*

  6. 选择是否在启动时装入密码数据库。

  7. 单击“保存”。

    有关更多信息,请参见联机帮助中的“用户文档目录”页面。

    为用户提供独立的目录的另一种方法是:创建一个映射到所有用户都可以修改的中心目录的 URL。

限制内容发布

在某些情况下,系统管理员可能希望限制可以通过用户文档目录发布内容的用户帐户。要限制某个用户的发布操作,请在 /etc/passwd 文件中该用户主目录路径的末尾添加一个斜杠:

jdoe::1234:1234:John Doe:/home/jdoe:/bin/sh

成为:

jdoe::1234:1234:John Doe:/home/jdoe/:/bin/sh

进行此修改后,Sun Java System Web Server 将不支持来自该用户的目录的页面。请求该 URI 的浏览器会收到“404 未找到文件”错误,并且 Web 服务器访问日志中将记录一个 404 错误。不会向错误日志中记录任何错误。

如果后来您又决定允许该用户发布内容,则可以从 /etc/passwd 条目中删除该结尾斜杠,然后重新启动 Web 服务器。

启动时装入整个密码文件

您也可以在启动时装入整个密码文件。如果选择此选项,服务器在启动时会将密码文件装入内存,以便用户可以更快地进行查找。但是,如果密码文件非常大,则此选项会占用过多内存。

设置 URL 重定向

URL 重定向使您可以将一个 HTTP URL 的文档请求重定向至另一个 HTTP URL。转发 URL 或重定向是服务器用来通知用户 URL 已经发生更改(例如,URL 由于文件已移动至其他目录或其他服务器而发生更改)的一种方法。您也可以使用重定向,将对某服务器上文档的请求无缝地发送至另一台服务器上的文档。

例如,如果将 http://www.sun.com/info/movies 转发至前缀 film.sun.com,则 URL http://www.sun.com/info/movies 将重定向至 http://film.sun.com/info/movies

有时,您可能会希望将对一个子目录中所有文档的请求重定向至某个特定的 URL。例如,如果必须删除某个目录(因为该目录产生的通信量过大,或者由于某种原因不再处理该目录中的文档),则可以将对其中任何文档的请求定向到一个解释了该文档为何不再可用的页面。例如,可以将 /info/movies 的前缀重定向至 http://www.sun.com/explain.html

您可以在虚拟服务器级别上设置 URL 重定向。

要配置 URL 重定向,请执行以下操作:

  1. 单击配置选项卡,并从配置列表中选择相应的配置。

  2. 单击虚拟服务器子选项卡,并从虚拟服务器列表中选择虚拟服务器。

  3. 依次单击内容处理子选项卡和 URL 重定向子选项卡。

  4. 单击新建按钮,添加新的 URL 重定向规则。

  5. 为介绍的字段提供所需的值。单击确定按钮。如果需要,您可能还需要为配置单击部署按钮。

下表介绍了添加新的 URL 重定向规则时的必填参数。

表 9–1 URL 重定向参数

参数

说明

URL 地址

应重定向请求的 URL 地址。将对该 URL 的所有 HTTP 请求重定向至目标 URL 中指定的 URL。 

目标 URL

应将请求重定向至的 URL。“URL 地址”中指定的 URL 的所有 HTTP 请求均将重定向至此 URL。 

URL 类型

固定。已启用/已禁用。固定的 URL 为静态 URL,如指向 HTML 页面的链接。非固定的 URL 为具有请求参数的动态 URL 或仅具有前缀的 URL。


注 –

使用 CLI

要通过 CLI 添加新的 URL 重定向规则,请执行以下命令:


wadm> create-url-redirect --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --no-ssl --config=config1 --vs=config1_vs_1 --uri-prefix=/redirect 
--target-url=http://www.cnet.com

请参见 CLI 参考 create-url-redirect(1)


使用正则表达式进行 URL 重定向

Sun Java System Web Server 7.0 经过增强,支持在配置文件中使用正则表达式(也称为模式)和请求时间参数插值。此外,与支持匹配的通配符模式还扩展到 server.xml。URL 重定向是以 SAF 方式实现的。重定向 SAF 允许您重定向与某一前缀匹配的 URI。您可以使用 from 参数指定前缀,使用 urlurl-prefix 参数指定要重定向到的 URL。在 Sun Java System Web Server 7.0 中,from 参数是可选的。如果省略 from,将重定向所有 URI。

在 obj.conf 文件中,新的 <If><Elseif><Else> 标记支持 SAF 参数。请参见附录 - obj.conf - 语法和用法。这些标记包含指令。使用这些标记,可以定义执行指令的条件。此外,也可以使用这些标记动态生成 SAF 参数。

Sun Java System Web Server 7.0 提供了 URL 重写功能,该功能是 Apache HTTP 服务器的 mod_rewrite 模块的超集。与 Apache 的 mod_rewrite 函数不同,<If> 标记提供以下功能:

以下面的指令为例:


NameTrans fn="redirect"
          	      from="/site1"
                 url="http://site1.mycompany.com"

以上指令可以使用正则表达式重写,如下所示:


<If $uri =~ '^/site1'>
           NameTrans fn="redirect"
           url="http://site1.mycompany.com"
</If>

在以上代码片段中,请注意使用了正则表达式,而非 from 参数。如果需要将对 /site1/* 的所有请求重定向至 http://site1.mycompany.com/*/index.html,请注意以下方法:


<If $uri =~ '^/site1/(.*)'>
           NameTrans fn="redirect"
           url="http://site1.mycompany.com/$1/index.html"
</If>

此处,<If> 标记将匹配 (.*) 的任何值指定给变量 $1。url 参数中的 $1 将被动态替换为原始请求中的值。这意味着,以上 obj.conf 代码片段将会导致对 /site1/download 的请求重定向至 http://site1.mycompany.com.com/download/index.html

组合 <If>redirect 可提供 mod_rewrite 的某些灵活性。但是,与 mod_rewrite 不同,<If> 可用于重定向和重写 URL 以外的操作。<If> 还可以与任何 SAF(包括第三方插件)一起使用。

以上方法可配置一个“302 已暂时移动”的重定向。在 Sun Java System Web Server 7.0 中,还可以添加 status="301" 参数,以指示您需要一个“301 已永久移动”的重定向。


NameTrans fn="redirect" from="/path" url="http://server.example.com" status="301"

CGI 概述

公共网关接口 (Common Gateway Interface, CGI) 程序可以使用许多编程语言进行定义。在 UNIX/Linux 计算机上,您可能会发现 CGI 程序被编写成 Bourne shell 或 Perl 脚本。


注 –

在 UNIX/Linux 中,具有附加的 CGIStub 运行进程,服务器可使用这些进程来帮助 CGI 执行。只有在首次访问 CGI 期间才创建这些进程。进程数量的变化取决于服务器上的 CGI 负荷。请不要删除这些 CGIStub 进程。服务器停止时,它们将消失。


有关更多信息,请参见联机的《Sun Java System Web Server Performance Tuning and Sizing Guide》中有关 MinCGIStubMaxCGIStubCGIStubIdleTimeout 的讨论。

在 Windows 计算机上,您可能会发现 CGI 程序是用 C++ 或批处理文件编写的。对于 Windows 而言,利用基于 Windows 的编程语言(如 Visual Basic)编写的 CGI 程序将使用不同的机制来操作服务器。这些程序被称为 Windows CGI 程序。


注 –

要运行命令行实用程序,需要手动设置 Path 变量以包括 server_root/bin/https/bin


不管使用什么编程语言,所有 CGI 程序均以同样的方式接受和返回数据。有关编写 CGI 程序的更多信息,请参见以下信息源:

下图介绍了如何在 Web Server 7.0 中处理 CGI 请求:

Sun Java System Web Server 7.0

在服务器计算机上存储 CGI 程序的方法有两种:

如果需要,您可以同时启用两个选项。

两种实现方法各有优点。如果只允许一组特定的用户添加 CGI 程序,请将 CGI 程序保留在指定的目录中并限制对这些目录的访问。如果允许任何可以添加 HTML 文件的用户都能添加 CGI 程序,请使用替代文件类型。用户可以将 CGI 文件和 HTML 文件保留在相同的目录中。

如果选择目录选项,服务器会尝试将该目录中的所有文件都视为 CGI 程序。通过使用相同的标记,如果选择文件类型选项,则服务器会尝试将具有 .cgi.exe.bat 文件扩展名的所有文件都作为 CGI 程序来处理。如果某个文件具有其中一个扩展名但不是 CGI 程序,用户试图访问时就会出现错误。


注 –

默认情况下,CGI 程序的文件扩展名为 .cgi.exe .bat。但是,您可以通过修改 MIME 类型文件来更改哪些扩展名表示 CGI 程序。要执行此操作,请选择“服务器首选项”选项卡并单击“MIME 类型”链接。


配置服务器的 CGI 子系统

Sun Java System Web Server 使您可以使用管理控制台 GUI 添加 CGI 文档目录。

要添加新的 CGI 文档目录,请执行以下操作:

  1. 单击配置选项卡,并从配置列表中选择相应的配置。

  2. 单击虚拟服务器子选项卡,并从虚拟服务器列表中选择虚拟服务器。

  3. 依次单击内容处理子选项卡和 CGI 子选项卡。

  4. 单击新建按钮以添加新的 CGI 文档目录。

  5. 为介绍的字段提供所需的值。单击确定按钮。如果需要,您可能还需要为配置单击部署按钮。

下表介绍了添加新的 CGI 文档目录时的必填字段。

表 9–2 CGI 参数

参数

说明

前缀 

键入要用于该目录的 URL 前缀。也就是说,您键入的文本将在 URL 中作为 CGI 程序的目录显示出来。 

例如,如果您键入 cgi-bin 作为 URL 前缀,则这些 CGI 程序的所有 URL 均将具有以下结构:

http://yourserver.domain.com /cgi-bin/program-name

CGI 目录 

在“CGI 目录”文本字段中,键入目录的位置作为绝对路径。请注意,该目录不必位于文档根目录下。因此,您需要指定 URL 前缀。 


注 –

指定的 URL 前缀可与实际的 CGI 目录有所不同。


用户 

指定要以其执行 CGI 程序的用户名称。 

组 

指定要以其执行 CGI 程序的组名称。 

Chroot 

指定执行开始之前要 chroot 的目录。 

Nice 

指定 nice 值,即确定 CGI 程序相对于服务器的优先级的增量。 

通常,服务器在 nice 值为 0 的情况下运行,nice 增量介于 0(CGI 程序与服务器在同一优先级下运行)至 19(CGI 程序的运行优先级远远低于服务器)之间。虽然可以通过将 nice 增量指定为 -1 来增加 CGI 程序的优先级使之高于服务器的优先级,但不建议使用这种方法。 

要删除现有 CGI 目录,请选择 CGI 目录并单击“删除”按钮。要更改现有目录的 URL 前缀或 CGI 目录,请单击目录链接。

将 CGI 程序复制到指定的目录中。请记住,这些目录中的所有文件均将作为 CGI 文件来处理,因此不要将 HTML 文件放入 CGI 目录中。

要将 CGI 指定为文件类型,请执行以下操作:

  1. 单击配置选项卡,并从配置列表中选择相应的配置。

  2. 单击虚拟服务器子选项卡,并从虚拟服务器列表中选择虚拟服务器。

  3. 依次单击内容处理子选项卡和 CGI 子选项卡。

  4. 单击 CGI 文件类型单选框以启用。

CGI 文件必须具有文件扩展名 .bat.exe .cgi。如果服务器将具有这些扩展名的非 CGI 文件作为 CGI 文件进行处理,将导致发生错误。


注 –

使用 CLI

您可以创建 CGI 目录,其中包含将由服务器进行处理的 CGI 程序。CGI 程序为特定的文件类型,例如 .cgi、.exe 或 .bat。这些程序可以位于文档根目录中的任何目录中,也可以位于文档根目录下的任何目录中。

要通过 CLI 添加 CGI 目录,请执行以下命令:


wadm> create-cgi-dir --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 --vs=config1_vs_1 --uri-prefix=/config1_urlprefix 
--directory=/cgi-dir

请参见 CLI 参考 create-cgi-dir(1)


下载可执行文件

如果使用 .exe 作为 CGI 文件类型,则不能将 .exe 文件作为可执行文件下载。

解决此问题的方案之一是压缩希望用户下载的可执行文件,从而使扩展名不是 .exe。该解决方案还有助于缩短下载时间。

另一个可能的解决方案是从 magnus-internal/cgi 类型中删除作为文件扩展名的 .exe,而将其添加到 application/octet-stream 类型(用于标准可下载文件的 MIME 类型)中。您可以通过 Server Manager 执行此操作,方法是选择“服务器首选项”选项卡并单击“MIME 类型”链接。但是,该方法的缺点是进行此更改后无法将 .exe 文件用作 CGI 程序。

另一个解决方案是编辑服务器的 obj.conf 文件,设置一个下载目录,自动下载该目录中的任何文件。服务器的其他部分不会受到影响。有关更多信息,请参见:

http://developer.netscape.com/docs/manuals/enterprise/admnunix/programs.htm

安装 Windows Shell CGI 程序

Windows Shell CGI 程序概述

Shell CGI 是一种服务器配置,通过该配置,您可以使用在 Windows 中设置的文件类型关联来运行 CGI 应用程序。

例如,如果服务器收到对一个名为 hello.pl 的 shell CGI 文件的请求,服务器将通过与 .pl 扩展名关联的程序,使用 Windows 文件类型关联来运行该文件。如果 .pl 扩展名与程序 C:\\bin\\perl.exe 相关联,服务器将尝试按以下方式执行 hello.pl 文件:

c:\\bin\\perl.exe hello.pl

配置 shell CGI 的最简便方式是在服务器的文档根目录中创建一个仅包含 shell CGI 文件的目录。但是,您也可以通过从 Sun ONE Web Server 编辑 MIME 类型,配置服务器以使特定的文件扩展名与 shell CGI 相关联。


注 –

有关设置 Windows 文件扩展名的信息,请参见相关的 Windows 文档。


自定义错误响应

您可以指定错误响应,当客户机遇到来自虚拟服务器的错误时,会将详细消息发送至客户机。可以指定要发送的文件或要运行的 CGI 程序。

例如,您可以更改服务器收到特定目录的错误时的响应方式。如果客户机尝试连接受访问控制保护的服务器内容,您可以返回一个错误文件,其中包括如何获得帐户的信息。

在启用自定义错误响应之前,必须创建为响应错误而发送的 HTML 文件或运行的 CGI 程序。

要添加自定义错误页面,请执行以下步骤:

  1. 单击配置选项卡,并从配置列表中选择相应的配置。

  2. 单击虚拟服务器子选项卡,并从虚拟服务器列表中选择虚拟服务器。

  3. 依次单击内容处理子选项卡和 错误页面子选项卡。

  4. 单击新建按钮以添加自定义错误页面。

    对于每个要更改的错误代码,请指定包含该错误响应的文件或 CGI 的绝对路径。

  5. 单击确定以返回错误页面列表。


注 –

使用 CLI

要通过 CLI 自定义错误页面,请执行以下命令:


wadm> set-error-page --user=admin --password-file=admin.pwd --host=serverhost 
--port=8989 --config=config1 --vs=config1_vs_1 --code=500 
--error-page=/server-error-uri-new 

请参见 CLI 参考 set-error-page(1)


更改字符集

文档的字符集部分取决于编写文档所用的语言。通过选择资源并输入该资源的字符集,可以覆盖客户机的文档、一组文档或目录的默认字符集设置。

大多数浏览器都可在 HTTP 中使用 MIME 类型的 charset 参数来更改其字符集。如果服务器的响应中包含此参数,浏览器将相应地更改其字符集。请参见以下示例:

RFC 17.000 中指定了以下某些常用浏览器识别的 charset 名称(以 x- 开头的名称除外):

  • us-ascii

  • iso-8859-1

  • iso-2022-jp

  • x-sjis

  • x-euc-jp

  • x-mac-roman

此外,识别 us-ascii 的以下别名

  • ansi_x3.4-1968

  • iso-ir-6

  • ansi_x3.4-1986

  • iso_646.irv:1991

  • ascii

  • iso646-us

  • us

  • ibm367.0

  • cp367.0

 

识别 so_8859-1 的以下别名

  • latin1

  • iso_8859-1

  • iso_8859-1:1987.0

  • iso-ir-100

  • ibm819

  • cp819

要更改字符集,请执行以下步骤:

Procedure更改字符集

  1. 在“虚拟服务器”页面中,单击“内容处理”选项卡。

  2. 单击“常规”选项卡。

  3. 在“其他”部分下设置默认字符集。

    如果将此字段保留为空,字符集将设置为 NONE。

  4. 单击“保存”。

设置文档页脚

您可以在服务器的特定部分中为所有文档指定一个文档页脚,其中可包括上次修改时间。除 CGI 脚本的输出信息或已解析的 HTML (.shtml) 文件外的所有文件都可以使用此页脚。如果需要在 CGI 脚本输出或已解析的 HTML 文件中显示文档页脚,请将页脚文本输入到单独的文件中,并添加一行代码或其他服务器端引用以将此文件附加到页面输出。

要设置文档页脚,请执行以下步骤:

Procedure设置文档页脚

  1. 在虚拟服务器页面中,单击“内容处理”选项卡。

  2. 单击“常规”子选项卡,然后转至“文档页脚”部分。

  3. 指定希望包含页脚的文件类型。

  4. 指定日期格式。

  5. 键入希望显示在页脚中的文本。

    文档页脚的字符数最多为 7.065 个。如果要包含文档的上次修改日期,请键入字符串 :LASTMOD:

  6. 单击“保存”。


    注 –

    使用 CLI

    要通过 CLI 设置文档页脚,请执行以下命令:


    wadm> enable-document-footer --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 
    --mime-type=text/html --date-format=%B --footer="config1 footer"

    请参见 CLI 参考 enable-document-footer(1)


限制符号链接 (UNIX/Linux)

您可以在服务器中限制文件系统链接的使用。文件系统链接是对存储在其他目录和文件系统中的文件的引用。使用引用,用户可以像访问当前目录中的文件一样访问远程文件。文件系统链接有两种类型:

有关硬链接和符号链接的更多信息,请参见 UNIX/Linux 系统文档。

使用文件系统链接可以方便地创建指向位于主文档目录之外的文档的指针,并且任何人都可以创建这些链接。因此,您可能会担心有人会创建指向敏感文件(例如,机密文档或系统密码文件)的指针。

要限制符号链接,请执行以下步骤:

Procedure限制符号链接

  1. 在虚拟服务器页面中,单击“内容处理”选项卡。

  2. 单击“常规”子选项卡。

  3. 转至“其他”部分下的“符号链接”部分。

  4. 选择是否启用软链接和/或硬链接以及起始目录。

  5. 单击“保存”。


    注 –

    使用 CLI

    要通过 CLI 限制符号链接,请执行以下命令:


    wadm> set-symlinks-prop --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 
    allow-soft-links=true allow-hard-links=false directory=/abc

    请参见 CLI 参考 set-symlinks-prop(1)


设置服务器解析的 HTML

通常情况下,HTML 发送到客户机时就像它存储在磁盘上一样,无需服务器进行任何干预。但是,服务器可以在发送文档之前搜索 HTML 文件以查找特定的命令(也就是说,服务器可以解析 HTML)。如果希望服务器解析这些文件并在文档中插入请求的特定信息或文件,必须首先启用 HTML 解析。

要解析 HTML,请执行以下步骤:

Procedure设置服务器解析的 HTML

  1. 在虚拟服务器页面中,单击“内容处理”选项卡。

  2. 单击“常规”子选项卡。

  3. 在“已解析的 HTML/SSI 设置”中,选择是否激活服务器解析的 HTML。

    您可以针对 HTML 文件而非 exec 标记进行激活,也可以同时针对 HTML 文件和 exec 标记进行激活,后一种方式允许 HTML 文件执行服务器中的其他程序。

  4. 选择要解析的文件。

    您可以选择是只解析扩展名为 .shtml 的文件,还是解析所有 HTML 文件(解析所有 HTML 文件会降低性能)。如果使用的是 UNIX/Linux,还可以选择解析开启了执行权限的 UNIX/Linux 文件,但是这样做不可靠。

  5. 单击“保存”。

    有关使用服务器解析的 HTML 的更多信息,请参见《Sun Java System Web Server Developer’s Guide》。


    注 –

    使用 CLI

    要通过 CLI 设置服务器解析的 HTML,请执行以下命令:


    wadm> enable-parsed-html --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --vs=config1_vs1

    请参见 CLI 参考 enable-parsed-html(1)


设置高速缓存控制指令

Sun Java System Web Server 通过高速缓存控制指令控制代理服务器高速缓存的信息。使用高速缓存控制指令,可以覆盖代理的默认高速缓存,以防止以后对敏感信息进行高速缓存,或对其进行检索。代理服务器必须遵循 HTTP 1.1 规范,才能使这些指令正常运行。

有关 HTTP 1.1 的更多信息,请参见超文本传输协议 -- HTTP/1.1 规范 (RFC 2068),该规范位于以下位置:

http://www.ietf.org/

要设置高速缓存控制指令,请执行以下步骤:

Procedure设置高速缓存控制指令

  1. 从虚拟服务器页面中,单击“内容处理”选项卡。

  2. 单击“常规”子选项卡并转到“其他”部分中的“高速缓存控制指令”字段。

  3. 填写各个字段。响应指令的有效值如下:

    • 公用。任何高速缓存均可以缓存响应。这是默认值。

      • 专用。仅专用(非共享)高速缓存可以缓存响应。

      • 无高速缓存。任何高速缓存都不能缓存响应。

      • 无存储。高速缓存不能将请求或响应存储到非易失性存储器中的任何地方。

      • 必须重新验证。必须在原始服务器中重新验证高速缓存条目。

      • 最长生存期(秒)。客户机不接受生存期大于该值的响应。

  4. 单击“保存”。


    注 –

    使用 CLI

    要通过 CLI 设置高速缓存控制指令,请执行以下命令。


    wadm> set-cache-control-directives --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=config1 --vs=config1_vs_1 public=true 
    private=true must-revalidate=true

    请参见 CLI 参考 set-cache-control-directives(1)


配置服务器的内容压缩

Sun Java System Web Server 7.0 支持 HTTP 内容压缩。内容压缩可以提高向客户机提供内容的速度,同时可以提供更多内容,而无需增加硬件的消耗。内容压缩减少了内容的下载时间,对使用拨号连接和高流量连接的用户尤其有用。

通过内容压缩,Web 服务器可以发送压缩的数据并指示浏览器对这些数据进行动态解压缩,从而减少数据的发送量并提高页面的显示速度。

将服务器配置为提供预压缩的内容

您可以将 Sun Java System Web Server 配置为在指定的目录中生成并存储文件的预压缩版本。进行这样的配置后,只有收到 Accept-encoding: gzip 标头,对配置为提供预压缩内容的目录中文件的所有请求才会被重定向为对该目录中等效压缩文件的请求(如果存在这样的文件)。例如,如果 Web Server 收到对 myfile.html 的请求,且 myfile.htmlmyfile.html.gz 都存在,则那些带有相应 Accept-encoding 标头的请求将收到压缩文件。

要将服务器配置为提供预压缩内容,请执行以下步骤:

Procedure更改预压缩的内容的设置

  1. 从虚拟服务器页面中,单击“内容管理”选项卡。

  2. 单击“常规”子选项卡。

  3. 转至“压缩”>“预压缩的内容”部分,然后从以下选项中进行选择。

    • 预压缩的内容-启用/禁用。允许您指示服务器为选定的资源提供预压缩的内容。

    • 生存期检查-指定是否检查压缩版本是否比非压缩版本旧。

      如果选择此选项,则当压缩版本比非压缩版本旧时将不会选择压缩版本。

      如果未选择此选项,将始终选择压缩版本,即使压缩版本比非压缩版本旧也是如此。

    • 插入 Vary 标头-指定是否使用 Vary: Accept-encoding 标头。

      如果选择此选项,当选择文件的压缩版本时,将始终插入 Vary: Accept-encoding 标头。

      如果未选择此选项,将不会插入 Vary: Accept-encoding 标头。

  4. 单击“保存”。

将服务器配置为根据需要压缩内容

您也可以将 Sun Java System Web Server 7.0 配置为动态压缩传输数据。动态生成的 HTML 页面仅在用户提出请求时才会存在。这对基于电子商务的 Web 应用程序和数据库驱动的站点尤其有用。

要将服务器配置为根据需要压缩内容,请执行以下步骤:

Procedure根据需要压缩内容

  1. 从虚拟服务器页面中,单击“内容处理”选项卡。

  2. 单击“常规”子选项卡。转至“压缩”部分中的“根据需要压缩内容”部分。

  3. 请从以下选项中进行选择:

    • 按需压缩-对选定的资源启用/禁用按需压缩。

    • 插入 Vary 标头-指定是否插入 Vary: Accept-encoding 标头。

      如果选择此选项,当选择文件的压缩版本时,将始终插入 Vary: Accept-encoding 标头。

      如果未选择此选项,将不会插入 Vary: Accept-encoding 标头。

    • 片断大小-指定压缩库 (zlib) 使用的内存段大小(以字节为单位)以控制每次 压缩的量。默认值是 8096

    • 压缩级别-指定压缩的级别。请选择 1 至 9 之间的值。值为 1 时速度最快;值为 9 时压缩效果最佳。默认值为 6,这将获得适中的速度和压缩效果。

  4. 单击“保存”。


    注 –

    使用 CLI

    要通过 CLI 启用根据需要压缩,请执行以下命令。


    wadm> enable-on-demand-compression --user=admin 
    --password-file=admin.pwd --host=serverhost --port=8989 --config=config1 
    --vs=config1_vs_1 --insertvaryheader=true 
    --fragment-size=100 --compression-level=5

    请参见 CLI 参考 enable-on-demand-compression(1)


配置反向代理

反向代理是指对客户机而言就像一个 Web 服务器(原始服务器),而实际上却将其接收到的请求转发给一个或多个原始服务器的代理。由于反向代理将其自身作为原始服务器,因此无需配置客户机即可使用反向代理。通过配置给定的反向代理以将请求转发给多个类似的已配置原始服务器,反向代理可以作为应用程序级别的软件负载平衡器运行。


注 –

在典型部署中,将在浏览器和原始服务器之间部署一个或多个反向代理。


Procedure添加代理 URI

  1. 单击“配置”选项卡并选择相应的配置。

  2. 单击“虚拟服务器”选项卡并选择虚拟服务器。

  3. 单击“内容处理”>“反向代理”选项卡。

  4. 单击“新建代理 URI”按钮。

    指定以下参数的值:

    • URI-反向代理 URI

    • 服务器 URL-逗号分隔的远程服务器 URL。如果提供了多个值,则服务器将在指定的服务器之间分发负载。

Procedure修改反向代理参数

  1. 单击“配置”选项卡并选择相应的配置。

  2. 单击“虚拟服务器”选项卡并选择虚拟服务器。

  3. 单击“内容处理”>“反向代理”选项卡。

  4. 单击 "URI"

    您可以编辑以下参数:

    • URI-反向代理 URI。

    • 服务器 URL-逗号分隔的远程服务器 URL。如果提供了多个值,则服务器将在指定的服务器之间分发负载。

    • 粘性 Cookie-Cookie 名,在响应中出现 Cookie 后,将导致后续请求始终发送到相应的原始服务器。

    • 粘性 URI 参数-用于检查路由信息的 URI 参数的名称。如果 URI 参数出现在请求 URI 中,且其值中包含冒号 ":" 并后接路由 ID,则请求将始终发送到由该路由 ID 标识的原始服务器中。

    • 路由标头-用于将路由 ID 传送到原始服务器的 HTTP 请求标头的名称。

    • 路由 Cookie-服务器在响应中遇到“粘性 Cookie”时所生成的 Cookie 名。“路由 Cookie”存储使服务器可以将后续请求返回到同一原始服务器的路由 ID。


    注 –

    使用 CLI

    1. 调用 create-reverse-proxy 命令。


    wadm> create-reverse-proxy --user=admin --password-file=admin.pwd 
    --host=serverhost --port=8989 --config=test --vs=test --uri-prefix=// 
    --server=http://rick.india.sun.com:8080

    请参见 CLI 参考 create-reverse-proxy(1)

    2. 修改 obj.conf 文件。


    NameTrans fn="map" from="/" name="reverse-proxy-/" to="http:/"
    ...
    <Object name="reverse-proxy-/">
    Route fn="set-origin-server" server="http://rick.india.sun.com:8080"
    </Object>
    
    <Object ppath="http:*">
    Service fn="proxy-retrieve" method="*"
    </Object>

    要重定向到安全站点,请遵循相同的步骤,并为 --server 选项提供 https 地址。


设置 P3P

隐私首选项平台 (Platform for Privacy Preference, P3P) 使 Web 站点能够以一种标准的格式来表达其隐私惯例,用户代理可以轻松地自动检索并解释这种格式。P3P 用户代理使用户可以收到站点隐私惯例的通知(以机器可读格式和人可读格式)。有关更多信息,请参见 http://www.w3.org/P3P/。

Procedure配置虚拟服务器的 P3P 设置

  1. 选择配置。

    从配置列表中选择相应的配置。单击“配置”选项卡以获取可用配置的列表。

  2. 选择虚拟服务器。

    从虚拟服务器列表中选择相应的虚拟服务器。单击“虚拟服务器”选项卡为选定的配置获取可用的虚拟服务器。

  3. 单击“常规”选项卡。配置 "P3P" 部分下面的以下设置。

    • 已启用-为选定的虚拟服务器启用 P3P。

    • 策略 URL输入相关 P3P 策略文件的位置。

    • 简洁策略简洁策略可向用户代理(浏览器或其他 P3P 应用程序)提供提示,以便用户代理可以快速同步地做出有关应用策略的决策。简洁策略是 P3P 规范的一种性能优化,它对于用户代理或服务器来说是可选的。


    注 –

    使用 CLI

    要对虚拟服务器启用 P3P,请执行以下命令:


    wadm> enable-p3p --user=admin --password-file=admin.pwd --host=serverhost 
    --port=8989 --config=config1 --vs=config1_vs_1 --policy-url=http://xyz.com/policyurl

    请参见 CLI 参考 enable-p3p(1)