如何对特定域使用自动配置代理PAC文件
时间:2020-01-09 10:40:48 来源:igfitidea点击:
如何使用PAC文件自动配置代理设置以隐藏一个域并直接连接其他所有域?
如何在PAC文件中指定URL以绕过代理服务器?
如何使用PAC文件创建例外?
PAC文件只不过是代理服务器自动配置文件。
这是浏览器调用的专用JavaScript函数定义,用于确定如何处理请求。
换句话说,大多数PAC文件开发都需要Javascript技能。
语法
PAC文件的一个非常简单的示例是:
function FindProxyForURL(url, host) { return "PROXY server1.theitroad.local:3128; DIRECT"; }
您需要在Web服务器DocumentRoot中创建并上传proxy.pac文件。
该文件为浏览器在端口3128上使用server1.theitroad.local的每个请求设置一个基本的代理服务器。
Firefox,Chrome,Opera和IE使用您的计算机的系统代理设置来连接到网络。
但是,您可以通过访问网络设置选项来更改这些设置。
您需要提供proxy.pac文件的URL。
在"自动代理配置URL"框中,执行proxy.pac文件的URL,例如http://192.168.1.100/proxy.pac或http://server1.theitroad.local/proxy.pac:
设置firefox pac文件网址
例子
在此示例中,您将代理服务器用于foo.example.com,并直接连接到所有其他站点。
function FindProxyForURL(url, host) { if ( localHostOrDomainIs(host, "foo.example.com") ) { return "PROXY server1.theitroad.local:3128"; } else { return "DIRECT"; } }
此proxy.pac文件允许通过代理服务器连接各种主机/域,并将其余主机直接连接到Internet:
function FindProxyForURL(url, host) { // Your proxy server name and port var proxyserver = 'server1.theitroad.local:3128'; // // Here's a list of hosts to connect via the PROXY server // var proxylist = new Array( "theitroad.com", "reddit.com", "www.theitroad.local", "mail.google.com", "www.pandora.com", "www.google.com" ); // Return our proxy name for matched domains/hosts for(var i=0; i<proxylist.length; i++) { var value = proxylist[i]; if ( localHostOrDomainIs(host, value) ) { return "PROXY "+proxyserver; } } return "DIRECT"; }
您创建的PAC文件很容易修改,以指定将绕过代理或包含在代理中的任意数量的URL,即可以使用以下语法创建例外:
if (shExpMatch(url, "*.slashdot.org/*")) {return "DIRECT";}
或通过代理服务器连接reddit.com:
if (shExpMatch(url, "*.reddit.com/*")) {return "PROXY proxy42.ca.theitroad.local:8080";}