I use ubuntu as my wordpress site’s OS. Today I followed a guide from web to use varnish to optimize my wordpress site.
First of all, install varnish:
sudo apt-get install varnish
Change the listening port of varnish, edit /etc/default/varnish, modify the default port from 6081 to 80 in DAEMON_OPTS section.
Then input the rules in /etc/varnish/default.vcl
backend default {
.host = "localhost";
.port = "8080";
}
acl purge {
"localhost";
}
sub vcl_recv {
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
return(lookup);
}
if (req.url ~ "^/$") {
unset req.http.cookie;
}
}
sub vcl_hit {
if (req.request == "PURGE") {
set obj.ttl = 0s;
error 200 "Purged.";
}
}
sub vcl_miss {
if (req.request == "PURGE") {
error 404 "Not in cache.";
}
if (!(req.url ~ "wp-(login|admin)")) {
unset req.http.cookie;
}
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, "\?.$", "");
}
if (req.url ~ "^/$") {
unset req.http.cookie;
}
}
sub vcl_fetch {
if (req.url ~ "^/$") {
unset beresp.http.set-cookie;
}
if (!(req.url ~ "wp-(login|admin)")) {
unset beresp.http.set-cookie;
}
}
At last, change the listening port of nginx to 8081 and restart nginx. Then start varnish use command
sudo /etc/init.d/varnish start
To test if it works, use command
curl -I http://yousite-domain
The response will tell you if varnish is working.

0 Comments.