Hello, we have installed Varnish on one of our RedHat 5 Linux machines.   I 
have pasted the configuration below.    I did remove the real hostnames and IP 
addresses from the configuration.

The configuration works fine with Mozilla for sites I have defined, but on IE 7 
the "hostname1" site does not completely load.   I see the favicon.ico and the 
title of the page, but the site continues to load without completing or 
sometimes completing after a long time (minute plus) to load.   The second site 
"shared_73_165" loads just fine.

Please note a week ago I had the same sites defined, but IE had problems 
loading the "shared_73_165" site but loaded the "hostname1" site just fine.   I 
assume there is some slight difference in the configuration between this week 
and last to make this change occur, but I don't know what it would be.    
Mozilla has always loaded both sites fine.


I am having trouble identifying the root cause of the problem.   Can anyone 
help me with trying to determine why IE 7 is taking so long to complete the 
loading of the page if it completes at all?

I can also add that a when I look at the varnishncsa output I see that with IE 
7 that not all of the elements on the HTML page are being requested, but 
through Mozilla I do see all the requests.   I can also tell you both sites 
work fine if I bypass Varnish.   It also does appear that IE 8 has the same 
issue although I have not tested with it as much as I have IE 7.

Any help that someone can provide would be appreciated?



backend hostname1
{
  
.host="xxx.xxx.xxx.xxx";.port="80";.max_connections=200;.connect_timeout=10s;.first_byte_timeout=10s;
  .between_bytes_timeout=10s;
}
backend shared_73_165
{
  
.host="xxx.xxx.xxx.xxx";.port="80";.max_connections=200;.connect_timeout=10s;.first_byte_timeout=10s;
  .between_bytes_timeout=10s;
}

sub vcl_recv
{
  # Set Backend Server
  if (req.http.host ~ "^hostname1.com"     || req.http.host ~ 
"^test.hostname1.com")              { set req.backend = hostname1;  }
  else                                                                          
                                                                                
             { set req.backend = shared_73_165; }

  # Set HTTP Header NS-Client-IP so Apache can log client's IP address.
  set req.http.NS-Client-IP = client.ip;

  # If HTTP Header Cache-Contro="no-cache" then purge any cache page that may 
exist for that URL and pass request on.
  if (req.http.Cache-Control ~ "no-cache") { purge_url(req.url); return(pass); }

  # If request is not a valid HTTP Method pipe it to the backend it is not 
cacheable.
  if (req.request!="GET"    && req.request!="HEAD"    && req.request!="PUT"     
&& req.request!="POST" &&
      req.request!="TRACE"  && req.request!="OPTIONS" && req.request!="DELETE")
  { return (pipe); }  /*Non-RFC2616*/

  # If request is not a GET or a HEAD then pass it through since its not 
cacheable.
  if (req.request!="GET" || req.request!="HEAD") { return (pass); }

  # Unset cookies on Drupal specific files that should be cached.
  if (req.url ~ "^/(files|misc|sites|themes|modules)/" || req.url ~ 
"\.(txt|ico)$") { unset req.http.Cookie; }

  # If request requires Authentication or has a Cookie then it is not cacheable.
  if (req.http.Authorization || req.http.Cookie) { return (pass); }

  # Normalize and compress content if Encoding starts with gzip or defalte but 
do not compress binary files.
  # @see:  http://varnish.projects.linpro.no/wiki/FAQ/Compression
  if (req.http.Accept-Encoding) {
    if    (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") { remove 
req.http.Accept-Encoding; }
    elsif (req.http.Accept-Encoding ~ "gzip")   {set req.http.Accept-Encoding = 
"gzip"; }
    elsif (req.http.Accept-Encoding ~ "deflate"){set req.http.Accept-Encoding = 
"deflate"; }
    else                                        {unset 
req.http.Accept-Encoding; }
  }

  # If requested page is currently being processed on another thread to a 
backend server,  server cached page if its not older than 30s.
  set req.grace = 30s;

  # Fall back to the default vcl_recv which will call the return(lookup);
}

sub vcl_pipe
{
  set req.http.connection = "close";
  # Fall back to the default vcl_pipe which will call return(pipe);
}

sub vcl_fetch
{
  # If the response from the backend is not a 200, 203, 300, 301, 302, 404 or 
410.
  if (!beresp.cacheable) { return (pass); }
}
--------------------------------------------------------
Raymond Bacion

ITSD Operating System Group
Phone: (573) 522-1468
Fax :    (573) 522-1384
Email:  [email protected]

-------------------------------------------------------



_______________________________________________
varnish-misc mailing list
[email protected]
http://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to