2013年9月8日星期日

自动代理配置 PAC

http://zh.wikipedia.org/zh/%E4%BB%A3%E7%90%86%E8%87%AA%E5%8A%A8%E9%85%8D%E7%BD%AE

PAC简介:
代理自动配置(PAC)文件定义了浏览器和其他用户代理如何自动选择适当的代理服务器来访问一个URL。
一个PAC文件包含一个JavaScript的函数"FindProxyForURL(url, host)". 这个函数返回一个包含一个或多个访问规则的字符串。用户代理根据这些规则适用一个特定的代理其或者直接访问。 当一个代理服务器无法响应的时候,多个访问规则提供了其他的后备访问方法。 浏览器在访问其他页面以前,首先访问这个PAC文件。PAC文件中的URL可能是手工配置的,也可能是是通过网页的网络代理自发现协议(Web Proxy Autodiscovery Protocol)自动配置的。

现代的浏览器实现了几个级别的自动化;用户可以选择最适合他们需要的级别。下面的这些方法被普遍的实现:
  • 手动代理配置:为所有的URLs规定一个主机名和端口作为代理。大多数浏览器允许用户规定一个域名的列表(例如 localhost),访问这个列表里面的域名的时候不通过代理服务器。
  • 代理自动配置(PAC): 规定一个指向PAC文件的URL,这个文件中包括一个JavaScript函数来确定访问每个URL时所选用的合适代理。这个方法更加适合需要几个不同代理配置的笔记本用户,或者有很多不同代理服务器的复杂的企业级设置。这个就是我们在本文中所要讨论的。
  • 网络代理自发现协议(WPAD): 浏览器通过DHCP和DNS的查询来搜索PAC文件的位置。

PAC的使用:
要使用PAC,我们应当在一个网页服务器上发布一个PAC文件,并且通过在浏览器的代理链接设置页面输入这个PAC文件的URL或者通过使用WPAD协议告知用户代理去使用这个文件。
一个PAC文件是一个至少定义了一个JavaScript函数的文本文件。这个函数FindProxyForURL(url, host)有2个参数:url是一个对象的URL,host是一个由这个URL所衍生的主机名。按照惯例,这个文件名字一般是proxy.pac. WPAD标准使用wpad.dat.
虽然大多数客户端无论从HTTP请求返回的MIME类型是什么都能正确处理,但为了完整性和最佳的兼容性,我们应该设置网页服务器将这个文件的MIME类型声明为 application/x-ns-proxy-autoconfig 或者 application/x-javascript-config .
没有什么理由偏爱一种MIME类型多一些,如果有的话,假设 application/x-ns-proxy-autoconfig 相对 application/x-javascript-config 被更多的客户端所支持是可以理解的。因为它被定义在最初的Netscape规范里面,后者是最近才开始被使用。
一个非常简单的PAC文件内容
   function FindProxyForURL(url, host) { return "PROXY proxy.example.com:8080; DIRECT"; }
这个函数告知浏览器通过服务器proxy.example.com的8080端口来获取所有的页面。如果这个服务器没有反应,那么浏览器应该不使用代理服务器直接访问WWW

高级PAC:
有些高级的PAC文件可以在请求到达代理服务器以前通过负载平衡,故障转移甚至黑白名单得方法减少对于代理服务器的负载。并且可以返回多个代理服务器。

没有评论:

发表评论