Varnish
Varnish Cache is a web application accelerator also known as a caching HTTP reverse proxy. You install it in front of any HTTP server and configure it to cache the contents.
Installation
Customizing Varnish
By default, varnish comes configured in /etc/varnish/default.vcl
to use localhost:8080 as the only backend, default.vcl is called by the default systemd varnish.service fileĀ :
/usr/lib/systemd/system/varnish.service
[Unit] Description=Web Application Accelerator After=network.target [Service] ExecStart=/usr/bin/varnishd -a 0.0.0.0:80 -f /etc/varnish/default.vcl -T localhost:6082 -s malloc,64M -u nobody -g nobody -F ExecReload=/usr/bin/varnish-vcl-reload [Install] WantedBy=multi-user.target
systemctl enable merely makes a symlink to the default
$ systemctl enable varnish ln -s '/usr/lib/systemd/system/varnish.service' '/etc/systemd/system/multi-user.target.wants/varnish.service'
Override the defaults in the unit file by using systemctl edit.
$ systemctl edit varnish.service
To override ExecStart use an empty ExecStart line first and then an ExecStart with the new values. Eg.
[Service] ExecStart= ExecStart=/usr/bin/varnishd -j unix,user=nobody -F -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,1G
Also, if you change the config file /etc/varnish/default.vcl
you will need to reload varnish:
$ systemctl reload varnish.service
or restart
$ systemctl restart varnish.service
Manual VCL load
If the previous VCL configuration reload failed, try loading the VCL file manually:
- Connect to the varnish console:
$ varnishadm -T localhost:6082
- Load the default VCL. Make sure it has at least one backend:
varnish> vcl.load default /etc/varnish/default.vcl
- Make it active:
varnish> vcl.use default
- Start the child proccess (optional):
varnish> start