2013年2月6日 星期三

IE proxy setting (use automatic configuration script)

Reference:
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 連出去。

沒有留言:

張貼留言