- https://websiteforstudents.com/configure-wordpress-with-nginx-mariadb-php-7-1-and-varnish-proxy-on-ubuntu-16-04-lts/
- https://www.tecmint.com/install-varnish-cache-for-apache-on-debian-and-ubuntu/
- http://docs.wp-rocket.me/article/891-purge-varnish-when-using-a-proxy
- http://varnish-cache.org/docs/4.0/users-guide/purging.html
Installing :
sudo apt-get update
sudo apt-get install nginx
curl -L https://packagecloud.io/varnishcache/varnish5/gpgkey | sudo apt-key add -
sudo apt update
sudo apt install varnish
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.1-fpm php7.1-common php7.1-mbstring php7.1-xmlrpc php7.1-gd php7.1-xml php7.1-mysql php7.1-cli php7.1-mcrypt php7.1-zip php7.1-curl
Basic conf :
vcl 4.0;
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
if (req.method == "PURGE") {
ban("req.http.host == " + req.http.host +
" && req.url == " + req.url);
return (synth(200, "Ban added"));
}
}
sub vcl_hash {
hash_data(req.url);
if (req.http.host) {
hash_data(req.http.host);
} else {
hash_data(server.ip);
}
return (lookup);
}
sub vcl_backend_response {
set beresp.ttl = 1y;
}
sub vcl_deliver {
}
Custom commands :
sudo /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -S /etc/varnish/secret
curl -X PURGE http://varnish.dee.sx/
varnishadm "ban req.http.host == varnish.dee.sx && req.url ~ \"/\""
sudo vi /etc/varnish/default.vcl
acl purgers {
"localhost";
"127.0.0.1";
"varnish.dee.sx";
}
ref : https://varnish-cache.org/docs/5.0/users-guide/purging.html