第 16 章
管理模板和资源
可以通过模板将 URL 组合在一起,这样便能够配置代理服务器对它们的处理方式。可以使代理服务器视客户机尝试检索的 URL 而采取不同的行为。例如,从特定域访问 URL 时可能要求客户机进行验证(键入用户名和口令)。或者可能拒绝访问指向图像文件的 URL。可以根据文件类型配置不同的高速缓存刷新设置。
本章包括以下各节:
关于模板
模板是 URL(称作资源)的集合。资源可以是单个 URL、具有某些共性的一组 URL 或整个协议。命名并创建模板,然后使用正则表达式将 URL 分配给该模板。这意味着可以对代理服务器进行配置,使其以不同方式处理对不同 URL 的请求。模板可以包括能够用正则表达式创建的任何 URL 模式。表 16-1 列出了默认资源并提供了其他模板的一些概念。
表 16-1 资源正则表达式通配符模式
正则表达式模式
|
配置的内容
|
ftp://.*
|
所有 FTP 请求
|
http://.*
|
所有 HTTP 请求
|
https://.*
|
所有安全的 HTTP 请求
|
gopher://.*
|
所有 Gopher 请求
|
connect://.*:443
|
到 HTTPS 端口的所有 SSL(安全)事务。
|
http://home\.example\.com.*
|
home.example.com Web 站点上的所有文档。
|
.*\.gif.*
|
任何包括字符串 .gif 的 URL
|
.*\.edu.*
|
任何包括字符串 .edu 的 URL
|
http://.*\.edu.*
|
任何转到 .edu 域中计算机的 URL
|
了解正则表达式
Proxy Server 让您可以使用正则表达式来识别资源。正则表达式指定字符串的模式。在代理服务器中,正则表达式用于查找 URL 中的匹配模式。
下面是正则表达式的一个示例:
[a-z]*://[^:/]*\.abc\.com.*>
该正则表达式匹配来自 .abc.com 域的所有文档。文档可以采用任何协议,可以使用任何文件扩展名。
表 16-2 包含正则表达式及其相应的含义。
表 16-2 正则表达式及其含义
表达式
|
含义
|
.
|
匹配除新行外的任意单个字符。
|
x?
|
匹配正则表达式 x 的零个或一个具体值。
|
x*
|
匹配正则表达式 x 的零个或更多个具体值。
|
x+
|
匹配正则表达式 x 的一个或更多个具体值。
|
x{n,m}
|
匹配字符 x,其中 x 至少出现 n 次,但不超过 m 次。
|
x{n,}
|
匹配字符 x,其中 x 至少出现 n 次。
|
x{n}
|
匹配字符 x,其中 x 正好出现 n 次。
|
[abc]
|
匹配方括号中包括的任意字符。
|
[^abc]
|
匹配方括号中未包括的任意字符。
|
[a-z]
|
匹配方括号中指定范围内的任意字符。
|
x
|
匹配字符 x,其中 x 不是特殊字符。
|
\x
|
取消特殊字符 x 的含义。
|
"x"
|
取消特殊字符 x 的含义。
|
xy
|
匹配正则表达式 x 具体值及后跟的正则表达式 y 具体值。
|
x|y
|
匹配正则表达式 x 或正则表达式 y。
|
^
|
匹配字符串的开头。
|
$
|
匹配字符串的结尾。
|
(x)
|
将正则表达式分组。
|
下例说明如何使用表 16-2 中的部分正则表达式。
[a-z]*://([^.:/]*[:/]|.*\.local\.com).*"
- [a-z]* 匹配任何协议的文档。
- :// 匹配 (:) 后跟 (//)。
- [^.:/]*[:/] 匹配任何不包括 (.)、(:) 或 (/) 但后跟 (:) 或 (/) 的字符串。因此它匹配未完全限定的主机名和具有端口号的主机。
- |.*\.local\.com 不匹配 local.com 这样的全限定域名主机名,但匹配 .local.com 域中的文档。
- .*" 匹配具有任何文件扩展名的文档。
|
注
|
如表 16-2 中所做的说明,可以使用反斜杠将特殊字符转义或取消特殊字符的含义。句号和问号等字符有特殊含义,因此,如果使用这些字符来代表其自身,必须对它们进行转义。特别是句号,它存在于许多 URL 中。因此,要在正则表达式中取消句号的特殊含义,需要在其前面加上一个反斜杠。
|
|
了解通配符模式
可以创建通配符模式列表,通过它们能够指定可以从站点访问的 URL。通配符可以是正则表达式或 shell 表达式形式,具体视用途而定。一般而言:
- 为匹配目标 URL 的任何模式使用正则表达式。这些 URL 包括 <Object ppath=...>、URL 过滤器以及 NameTrans、PathCheck 和 ObjectType 函数。
- 为匹配外来客户机或用户 ID 的任何模式使用 shell 表达式,这些 ID 包括用于访问控制的用户名和组、外来用户的 IP 地址或 DNS 名称(例如,<Client dns=...>)。
使用正则表达式通配符模式可以指定若干个 URL。可以通过通配符按域名或按包含给定词语的任何 URL 进行过滤。例如,可能需要阻止访问包含字符串 "careers" 的 URL。要达到此目的,可以指定 http://.*careers.* 作为模板的正则表达式。
创建新模板
可以使用正则表达式通配符模式创建模板。然后可以配置只影响在该模板中指定的 URL 的特征。例如,可以为 .GIF 图像使用一种类型的高速缓存配置,而为纯 .HTML 文件使用另一种类型的高速缓存配置。
创建模板
- 访问 Server Manager 并单击 "Templates" 选项卡。
单击 "Create Template" 链接。将显示 "Create Template" 页面。
- 在 "Template Name" 字段中,键入要创建的模板的名称,然后单击 "OK"。
应键入易记的名称。Server Manager 提示您保存并应用更改。可以在为模板创建正则表达式后保存更改,如其余步骤中所述。
应用模板
应用模板
- 访问 Server Manager 并单击 "Templates" 选项卡。
- 单击 "Apply Template" 链接。将显示 "Apply Template" 页面。
- 在 "URL Prefix Wildcard" 字段中键入正则表达式通配符模式,其中包括要在模板中包括的所有 URL。
- 从 "Template" 列表中选择刚添加的新模板的名称。
- 单击 "OK"。
- 单击 "Restart Required"。将显示 "Apply Changes" 页面。
- 单击 "Restart Proxy Server" 按钮以应用更改。
删除模板
可以删除现有模板。删除模板时将一并删除模板的所有关联配置。例如,如果为模板 TEST 中的所有 URL 设置了访问控制,则删除 TEST 模板时将同时删除对该模板包含的 URL 的访问控制。
删除模板
- 访问 Server Manager 并单击 "Templates" 选项卡。
- 单击 "Remove Template" 链接。将显示 "Remove Template" 页面。
- 从 "Remove" 列表中选择模板。
- 单击 "OK"。
- 单击 "Restart Required"。将显示 "Apply Changes" 页面。
- 单击 "Restart Proxy Server" 按钮以应用更改。
查看模板
可以查看和编辑在 Server Manager 中创建的模板。
编辑模板
- 访问 Server Manager 并单击 "Templates" 选项卡。
- 单击 "View Template" 链接。将显示 "View Template" 页面。模板显示在一个表格中,其中列出了模板的正则表达式和模板名称。
- 要编辑现有模板,请单击 "Edit Template Assignment" 链接,随后将转到 "Apply Template" 页面。
删除资源
可以通过 "Remove Resource" 页面删除整个正则表达式对象及其相应的配置。例如,可以删除 gopher 资源,从而从代理服务器的配置文件中删除与该资源关联的所有设置。
删除资源
- 访问 Server Manager 并单击 "Templates" 选项卡。
- 单击 "Remove Resource" 链接。将显示 "Remove Resource" 页面。
- 通过从 "Remove" 下拉式列表中进行选择来选取要删除的资源。
- 单击 "OK"。
- 单击 "Restart Required"。将显示 "Apply Changes" 页面。
- 单击 "Restart Proxy Server" 按钮以应用更改。