A few users see a blank page

Marco Molinari marco.molinari at gmail.com
Wed Feb 13 16:50:10 CET 2008


On Feb 13, 2008 4:33 PM, Dag-Erling Smørgrav <des at linpro.no> wrote:
>
> You are doing weird things such as inserting passed requests into the
> cache, yet none of the requests you showed were cache hits.
>
> Re the second request from your log, where the client got an empty
> page: that was actually what the backend sent.

Hi,
actually Apache logged it sent 8001 bytes:
127.0.0.1, 10.0.2.2 - - [12/Feb/2008:14:24:29 +0100] "GET
/test_varnish2.php?n=11&t=1202822659 HTTP/1.0" 200 8001 "-"


> There is no way to debug this further without seeing your vcl script.



Here the vcl I posted, which was the one I was using:

backend default {
       set backend.host = "127.0.0.1";
       set backend.port = "8080";
}

sub vcl_recv {
       if (req.http.Pragma == "no-cache") {
               pipe;
       }

       if (req.request == "GET" && req.url ~
"\.(gif|jpg|swf|css|js|swf|flv|png|jpeg)$") {
               lookup;
       }

       if (req.request != "GET" && req.request != "HEAD") {
               pipe;
       }

       if (req.http.Expect) {
               pipe;
       }

       if (req.http.Authenticate || req.http.Cookie) {
               pass;
       }

       lookup;
}


Today I changed the last "pass" into "pipe" (in the req.http.Cookie
part) and both I and my complaining users get no blank pages anymore
(Arne, I remember you wrote you tried both pipe and pass, but did you
try this?)

To sum this up, I get a blank page if all of these happen:
- I use a Squid 2.5 or 2.6 proxy
- and the content is generated by php
- and the content is more than 8000 bytes
- and the cookie header is quite long (about 500 chars)
- and if (req.http.Cookie) {pass} in vcl

thanks
Marco



More information about the varnish-misc mailing list