Hello everyone. I am using varnish to cache my Plone site, with xdv.
I have the following configuration: nginx - varnish - nginx (apply xdv transf) - haproxy - plone. My problem is that the first time I open a page, my esi includes are not interpreted.. I get a blank content, and in firebug I can see the esi statement. <esi:include src="http://inverta.org:80/jornal/repositorio/destaque/?;filter_xpath=//*[@id=%22content%22]/div[1]/*"></esi:include> (If I ask firefox to show me the source, it makes a new request, so the source displayed has the correct replacements). If I reload the page, or open it in a new tab everything works perfectly. The problem is only the first time a browser open the pages. If I close and reopen the browser, the first time the page is opened, the error appears again.. My varnish.vcl config: # This is a basic VCL configuration file for varnish. See the vcl(7) # man page for details on VCL syntax and semantics. backend backend_0 { .host = "127.0.0.1"; .port = "1010"; .connect_timeout = 0.4s; .first_byte_timeout = 300s; .between_bytes_timeout = 60s; } acl purge { "localhost"; "127.0.0.1"; } sub vcl_recv { set req.grace = 120s; set req.backend = backend_0; if (req.request == "PURGE") { if (!client.ip ~ purge) { error 405 "Not allowed."; } lookup; } if (req.request != "GET" && req.request != "HEAD" && req.request != "PUT" && req.request != "POST" && req.request != "TRACE" && req.request != "OPTIONS" && req.request != "DELETE") { /* Non-RFC2616 or CONNECT which is weird. */ pipe; } if (req.request != "GET" && req.request != "HEAD") { /* We only deal with GET and HEAD by default */ pass; } if (req.http.If-None-Match) { pass; } if (req.url ~ "createObject") { pass; } remove req.http.Accept-Encoding; lookup; } sub vcl_pipe { # This is not necessary if you do not do any request rewriting. set req.http.connection = "close"; set bereq.http.connection = "close"; } sub vcl_hit { if (req.request == "PURGE") { purge_url(req.url); error 200 "Purged"; } if (!obj.cacheable) { pass; } } sub vcl_miss { if (req.request == "PURGE") { error 404 "Not in cache"; } } sub vcl_fetch { set obj.grace = 120s; if (!obj.cacheable) { pass; } if (obj.http.Set-Cookie) { pass; } if (obj.http.Cache-Control ~ "(private|no-cache|no-store)") { pass; } if (req.http.Authorization && !obj.http.Cache-Control ~ "public") { pass; } if (obj.http.Content-Type ~ "text/html") { esi; } } sub vcl_hash { set req.hash += req.url; set req.hash += req.http.host; if (req.http.Accept-Encoding ~ "gzip") { set req.hash += "gzip"; } else if (req.http.Accept-Encoding ~ "deflate") { set req.hash += "deflate"; } } Thanks for all, Rafael _______________________________________________ varnish-misc mailing list [email protected] http://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
