Sun Java System Web Proxy Server 4.0.8 管理指南

以 Web 服务器形式访问代理服务器

可在代理服务器上存储一个或多个自动配置文件,并使代理服务器充当 Web 服务器,对于后者,自动配置文件是其仅有的文档。这样,代理服务器管理员即可维护组织中客户机所需的代理自动配置文件。还可以将这些文件保存在一个中心位置,如此一来,如果必须更新这些文件,则只需更新一次,所有浏览器客户机都会自动获得更新。

您要将代理自动配置文件保存在 server- root/proxy-serverid/pac/ 目录中。在浏览器中,通过在 "Proxies" 选项卡中键入代理自动配置文件的 URL 来进入此文件的 URL。代理服务器的 URL 具有如下格式:

http://proxy.domain:port/URI

例如,该 URL 可以是 http://proxy.example.com。如果确实要使用 URI(跟在 host:port 组合后面的 URL 部分),则可以使用模板来控制对各个自动配置文件的访问。例如,如果创建一个名为 /test 的 URI,其中包含一个名为 /proxy.pac 的自动配置文件,则可以创建一个资源模式为 http://proxy.mysite.com:8080/test/.* 的模板。然后,可以使用该模板具体设置对该目录的访问控制。

您可以创建多个自动配置文件,并通过不同的 URL 访问这些文件。下表列出了一些 URI 示例以及客户机用于访问这些 URI 的 URL。

表 17–1 URI 样例和相应的 URL

URI(路径) 

代理服务器的 URL 

http://proxy.mysite.com 

/employees 

http://proxy.mysite.com/employees 

/group1 

http://proxy.mysite.com/group1 

/managers 

http://proxy.mysite.com/managers 

对反向代理使用 PAC 文件

由于反向代理的工作方式,因此针对 .pac 文件使用代理服务器和服务器会很困难。当代理服务器收到文件请求时,它必须确定此请求是针对本地 .pac 文件还是针对远程文档。

要使代理服务器在除了维护和处理 .pac 文件之外还充当反向代理,请编辑 obj.conf 文件以确保 NameTrans 函数的顺序正确。

通过创建正则映射可使代理服务器用作反向代理。这通常会示意代理将所有请求都路由到远程内容服务器。您可以添加代理自动配置文件并将其映射到特定的目录(例如 /pac)。在这种情况下,任何希望获取 .pac 文件的客户机都将使用如下 URL:

http://proxy.mysite.com/pac

注意 – 注意 –

如果进行此映射,请确保远程内容服务器中没有类似的目录。


编辑 obj.conf 文件,以确保用于代理自动配置文件的指令和函数出现在任何其他映射之前。此类指令和函数必须最先出现,因为代理服务器在处理请求之前,通常要先运行所有的 NameTrans 函数。然而,使用自动配置文件,代理可立即识别出此路径并返回 .pac 文件。

以下是一个 obj.conf 文件的示例,它使用了反向代理并维护着一个自动配置文件。

<Object name="default">
NameTrans from="file:" fn="map" to="ftp:"
NameTrans from="/pac" fn="pac-map" name="file" 
	to="/ns-home/proxy/pac/proxy.pac"
NameTrans fn="redirect" from="http://foo.*" url="http://www.acme.com"
NameTrans from="/ns-icons" fn="pfx2dir" dir="/ns-home/ns-icons" name="file"
NameTrans fn="reverse-map" from="http://web.acme.com" 
	to="http://proxy.acme.com:8080"
NameTrans fn="map" from="http://proxy.acme.com:8080" 
	to="http://web.acme.com"
NameTrans fn="map" from="/" to="http://web.acme.com"
PathCheck fn="url-check"
Service fn="deny-service"
AddLog fn="flex-log" name="access"
AddLog fn="urldb-record"
</Object>