http://www.cavaliercoder.com/blog/proxy-auto-configuration-script-to-bypass-proxy-for-local-addresses.html
http://en.wikipedia.org/wiki/Proxy_auto-config
http://superuser.com/questions/191037/local-pac-file-url-format-that-works-with-ie-and-safari-windows
如果直接在 IE 勾選 proxy server,Notebook 在公司外上網必須先把 proxy 關掉才行。
為了讓 Notebook 在公司內使用 proxy,在公司外不用 proxy,必須使用 utomatic configuration script。
做法:
- 找一台 web server,新增一個檔案 proxy.txt。(測試過檔名 proxy.pac,IE8 不認識)
- proxy.txt 的內容如下,將藍色的部份改為公司內部的資料。
function FindProxyForURL(url, host)
{
// Proxy server in format "PROXY [proxy server]:[proxy port]"
var proxy = "PROXY proxy.mydomain.local:8080";
// Proxy Exceptions:
var exceptions = new Array(
// Non-domain hostnames (eg. intranet, helpdesk, timesheets, etc)
/^[a-zA-Z0-9-]+$/,
// Local domain hosts (eg. fileserver.mydomain.local)
/\.mydomain\.local$/,
// Local IP Addresses (ie. 192.168.0.1 - 192.168.255.254)
/^192\.168\.\d+\.\d+$/,
// Local IP Addresses (ie. 172.16.0.1 - 172.32.255.254)
/^172\.(1[6-9])|(2[0-9])|(3[0-2])\.\d+\.\d+$/,
// Local IP Addresses (ie. 10.0.0.1 - 10.255.255.254)
/^10\.\d+\.\d+\.\d+$/,
// A domain and all of its subdomains:
/microsoft\.com$/,
// A domain and NONE of its subdomains:
/^news\.google\.com$/
);
for (i = 0; i < exceptions.length; i++) // Iterate through each exception
{
if (exceptions[i].test(host)) // Test regex query against hostname
{
return "DIRECT"; // Bypass the proxy
}
}
return proxy; // Connect via proxy
}
- 設定 IE 的 use automatic configuration script,Address 輸入 http://mywebserver/proxy.txt。
- 可以用 local file 測試 automatic configuration script。Address 輸入 file://c:/tmp/proxy.txt。
2013/2/20 update:
如果把 PAC file (proxy automatic configuration) 放在 web server,必需放到一台回應速度快的 web server。我把 PAC file 放到回應較慢的 web server,結果 IE 8 經常出現 "空白" 網頁,或是網頁排列亂掉,猜測可能是 PAC file download 不完全造成 JavaScript 執行錯誤。
2013/6/18 update:
for multiple proxy or load balance.
var proxy = "PROXY proxy.mydomain.local:8080; proxy2.mydomain.local:8080; DIRECT";
萬一 proxy 都故障會用 DIRECT 連出去。
2013/6/18 update:
for multiple proxy or load balance.
var proxy = "PROXY proxy.mydomain.local:8080; proxy2.mydomain.local:8080; DIRECT";
萬一 proxy 都故障會用 DIRECT 連出去。
沒有留言:
張貼留言