Varnish
Varnish Cache is a web application accelerator also known as a caching HTTP reverse proxy. You install it in front of any server that speaks HTTP and configure it to cache the contents.
Multiple backends
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'
instead copy it and edit to increase malloc default.vcl etc:
$ cp '/usr/lib/systemd/system/varnish.service' '/etc/systemd/system/varnish.service'
then enable varnish and it will use your customized .service file instead:
$ systemctl enable varnish ln -s '/etc/systemd/system/varnish.service' '/etc/systemd/system/multi-user.target.wants/varnish.service'
Also, if you change the config file /etc/varnish/default.vcl
you'll 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