backend default { .host = "109.75.163.xx"; /*specifying localhost never worked on my cpanel servers, probably owing to default user restrictsions, so I enter public IP address of backend */ .port = "8081"; .connect_timeout = 600s; .first_byte_timeout = 600s; .between_bytes_timeout = 600s; } sub vcl_recv { 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. */ return (pipe); } if (req.request != "GET" && req.request != "HEAD") { # We only deal with GET and HEAD by default return (pass); } # Normalize Content-Encoding if (req.http.Accept-Encoding) { if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|lzma|tbz)(\?.*|)$") { 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 { remove req.http.Accept-Encoding; } } # Remove Google Analytics and has_js cookies, path=/ is for WP if (req.http.Cookie) { set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm.=[^;]+;? *", "\1"); set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *has_js=[^;]+;? *", "\1"); } if (req.http.Cookie == "") { remove req.http.Cookie; } # remove PHP session cookies for non-logged-in Wordpress users if (!(req.url ~ "wp-(login|admin)")) { set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *PHPSESSID=[^;]+;? *", "\1"); } if (req.http.Cookie == "") { remove req.http.Cookie; } # remove cookies for my Wordpress site if (req.http.host ~ "^classicsblog.net") { if (!(req.url ~ "wp-(login|admin)")) { remove req.http.Cookie; } } # Remove cookies and query string for real static files if (req.url ~ "^/[^?]+\.(jpeg|jpg|png|gif|ico|js|css|txt|gz|zip|lzma|bz2|tgz|tbz|html|htm)(\?.*|)$") { unset req.http.cookie; set req.url = regsub(req.url, "\?.*$", ""); } # Remove cookies from front page if (req.url ~ "^/$") { unset req.http.cookie; } # Remove a ";" prefix, if present. set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", ""); # Skip the Varnish cache for install, update, and cron if (req.url ~ "install\.php|update\.php|cron\.php") { return (pass); } #Let's have a little grace set req.grace = 30s; return (lookup); } sub vcl_fetch { if (req.url ~ "^/$") { unset beresp.http.cookie; } } sub vcl_error { set obj.http.Content-Type = "text/html; charset=utf-8"; set obj.http.Retry-After = "5"; synthetic {" "} + obj.status + " " + obj.response + {"

Error "} + obj.status + " " + obj.response + {"

"} + obj.response + {"

Guru Meditation:

XID: "} + req.xid + {"


Varnish cache server

"}; return (deliver); }