Varnish not completely loading page from IE 7 browser

Bacion, Ray Ray.Bacion at oa.mo.gov
Fri Feb 4 19:05:02 CET 2011


Thank you for your quick response.

The version of Varnish is 2.1.4-2.el5
The IE version is 7.0.5370.13
Nothing is HTTPS.
The backends are on the same box as Varnish.  They do point to two different sites we are testing.
There is a load balancer a CITRIX NetScaler that is in front of Varnish.
I'm not sure if these sites use external components as I did not develop the site.  If this becomes an important issue, I will ask the developers.

One other note of interest.   In retesting everything before sending this email, I learned that everything is working using IE if I go directly to Varnish, however, again one of the two sites is not responding properly when I use IE and go through the CITRIX load balancer to Varnish.   I also had a co-worker test on a different machine.   He was using the same IE version.   He had the same results, however, for whatever reason he had trouble getting to the second website, but got to the first website just fine.   Essentially he is having trouble getting to the opposite site that I was having trouble getting to when testing through the CITRIX load balancer to Varnish.   Both sites do fine when connecting through CITRIX and make a direct connection to the web servers.

Is there any specific concerns with running Varnish behind a CITRIX load balancer?

Again, any help you can provide on troubleshooting this problem would be appreciated.


From: Caunter, Stefan [mailto:scaunter at topscms.com]
Sent: Friday, February 04, 2011 10:58 AM
To: Bacion, Ray; varnish-misc at varnish-cache.org
Cc: OA.Lampadmins
Subject: RE: Varnish not completely loading page from IE 7 browser

We need to know which version of varnish.

Which  exact version of IE7? Does the page call external components? Anything https? Are the back ends the same? Is there a load balancer?

Stefan Caunter
Operations
Torstar Digital
m: (416) 561-4871


From: varnish-misc-bounces at varnish-cache.org [mailto:varnish-misc-bounces at varnish-cache.org] On Behalf Of Bacion, Ray
Sent: February-03-11 2:01 PM
To: 'varnish-misc at varnish-cache.org'
Cc: OA.Lampadmins
Subject: Varnish not completely loading page from IE 7 browser

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:  Ray.Bacion at oa.mo.gov

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



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-misc/attachments/20110204/af876690/attachment-0003.html>


More information about the varnish-misc mailing list