Search squid archive

Re: Squid + WPAD issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



thanxs for your answer. pac-files - when created via CGI - offer more flexibility than the "hard-coded" stuff in the browser's proxy dialog.
i also know, that with pac-files you can choose different proxies - something we do at the moment at our subsidiaries proxy, which then forwards the request to one of our main-proxies (internet, intranet, extranet, misc). 
my question was regarding some user-excpetions. a combination of proxy-pac and "browser-settings" is not possible - at least not with IE. so if we want to support user excpetions than it only could be done if these settings also were provided by the cgi-generated pac-file, right?

markus

>-----Ursprüngliche Nachricht-----
>Von: K K [mailto:kkadow@xxxxxxxxx] 
>Gesendet: Freitag, 8. Juni 2007 19:58
>An: Rietzler, Markus (Firma Rietzler Software / RZF)
>Cc: squid-users@xxxxxxxxxxxxxxx
>Betreff: Re:  Squid + WPAD issues
>
>On 6/8/07, Markus.Rietzler@xxxxxxxxxxxxxx
><Markus.Rietzler@xxxxxxxxxxxxxx> wrote:
>> what about proxy exceptions?
>
>Glad you asked :)
>
>> a few tests with proxy.pac - the simple form of wpad (wpad 
>only defines
>> how to find the proxy.pac-file, right?) - showed, that 
>settings in the
>> "proxy exceptions" - sites which should fetched direct 
>without proxy -
>> are ignored. you have to provide those sites via proxy.pac file.
>> settings in the browser dialogs are ignored. so you could some users
>> define additional exceptions?
>> i also thought about letting a script generate the proxy.pac based on
>> client ip or location in our subsidiaries. but with this "proxy
>> exceptions" ore ignored and this is  - at the moment - a problem.
>
>PAC supports infinitely greater flexibility for exceptions than the
>browsers' "exceptions" dialog.  It can instruct the browser to go
>DIRECT,  to use a different PROXY for certain sites (there are caveats
>with this last feature under MSIE), etc.
>
>Our proxy.pac, after being post-processed by the server-side CGI
>(which removes comments and extraneous whitespace, then substitutes in
>the right proxy IP based on the client's network), is 16KB, several
>hundred lines, mostly to deal with exceptions and to try to minimize
>the number of DNS lookups performed by the browser.
>
>
>Here's a paraphrased version of my PAC, I've added some comments to
>explain the logic:
>
>
>function FindProxyForURL(url, host)
>{
>var host_addr = null;
>
>// This weird comment block addresses a Jave WebStart (JWS) bug.
>/* if(0) {
>   return "PROXY placeholder.broken.client";
>} */
>
>
>// Intranet sites, equivalent to "exceptions" in a non-PAC browser:
>if (dnsDomainIs(host,".intranet.corp")
>|| shExpMatch(host, "172.16.*") || shExpMatch(host, "172.17.*")
>|| shExpMatch(host, "192.168.?.*") )
>{
>   return "DIRECT";
>}
>
>
>// These sites don't like being cached, so use a non-caching proxy
>if (dnsDomainIs(host, "drudgereport.com")
>|| dnsDomainIs(host, "whatismyip.com")
>|| dnsDomainIs(host, "wunderground.com") )
>{
>   return PROXY "10.192.28.3:80; PROXY 10.7.7.3:80";
>}
>
>
>// Evil domains, user trying to go here gets what they deserve.
>if (dnsDomainIs(host, ".hotbar.com") ||
>dnsDomainIs(host, ".gator.com") ||
>dnsDomainIs(host, "poll.gotomypc.com") ||
>dnsDomainIs(host, "top10sites.com") )
>{
>   return "PROXY 127.0.0.1:445 ; PROXY 10.255.255.255:7; DIRECT";
>}
>
>
>// We know these are always Internet, so any site in these domains we
>// assume we use Squid (unless it's SSL).
>if (dnsDomainIs(host, ".com")
>|| dnsDomainIs(host, ".net")
>|| dnsDomainIs(host, ".org")
>|| dnsDomainIs(host, ".edu")
>|| dnsDomainIs(host, ".gov")
>|| dnsDomainIs(host, ".biz")
>|| dnsDomainIs(host, ".mil")
>|| dnsDomainIs(host, ".pro")
>|| dnsDomainIs(host, ".int")
>|| dnsDomainIs(host, ".aero")
>|| dnsDomainIs(host, ".info")
>|| dnsDomainIs(host, ".name")
>|| dnsDomainIs(host, ".coop")
>|| dnsDomainIs(host, ".museum")
>|| dnsDomainIs(host, ".us")
>|| dnsDomainIs(host, ".tv") )
>{
>   // We can't cache SSL, so use a non-caching proxy
>   if( url.substring(0, 6) == "https:") {
>     return PROXY "10.192.28.3:80; PROXY 10.7.7.3:80";
>   }
>   return PROXY "10.7.7.5:3128; PROXY 10.192.28.5:3128";
>}
>
>
>// BTW, in my production PAC, we repeat the above exception list for
>// a total of 170+ .CC TLDs as well, all to avoid falling through to
>// this next block below:
>
>
>// No matches above, so now we consult DNS.
>host_addr = dnsResolve(host);
>if (host_addr == false || host_addr == "")
>{
>   host_addr = null;
>}
>
>
>// Same exceptions as previously, but these are matching the 
>resolved IP.
>if (shExpMatch(host_addr, "172.16.*") || shExpMatch(host_addr, 
>"172.17.*")
>|| shExpMatch(host_addr, "192.168.*") )
>{
>   return "DIRECT";
>}
>
>
>//
>// Nothing matched, here are the fall-backs.
>//
>
>
>// We can't cache SSL, so use a non-caching proxy
>if (url.substring(0, 6) == "https:") {
>  return PROXY "10.192.28.3:80; PROXY 10.7.7.3:80";
>}
>
>return PROXY "10.7.7.5:3128; PROXY 10.192.28.5:3128";
>}
>///EOF///
>


[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux