由于反向代理的工作方式,因此针对 .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>