Installazione di Varnish Cache su Ubuntu 18
In questo articolo andremo a descrivere come installare Varinish Cache su Ubuntu 18.
Consideriamo di partire da una macchina Ubuntu 18 (qui per l’installazione ) preinstallata ed aggiorniamola
sudo apt-get update
sudo apt-get upgrade
Varnish è definito un accelleratore HTTP per il fatto che si interpone tra la richieste provenienti dall ‘esterno da parte dell’ utente ed un comune web server, in particolare permette di “cachere” i contenuti, in modo da velocizzare successive richieste già fatte da parte dell’ utente.
In questo articolo andremo ad utilizzare come web server Apache, quindi installiamolo
sudo apt-get install apache2
al momento fermiamo il demone di apache2
sudo systemctl stop apache2
sudo systemctl enable apache2
adesso installiamo Varnish Cache
sudo apt-get install varnish
avviamolo ed impostiamo anche l’avvio automatico al boot
sudo systemctl start varnish
sudo systemctl enable varnish
il file di configurazione di Varnish è al seguente percorso
vim /etc/varnish/default.vcl
aprendo il seguente file potremo notare che si aspetta servire un webserver all’interno della stessa macchina su porta 8080 (è possibile cambiarla)
# Default backend definition. Set this to point to your content server.
backend default {
.host = “127.0.0.1”;
.port = “8080”;
}
mentre per il servizio di Varnish riceverà richieste sulla porta 80 in questo esempio
vim /lib/systemd/system/varnish.service
ed andremo a modificare la seguente linea
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
con nel nostro caso
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
è possibile cambiare le porte, in quanto di potrebbe pensare di anteporre anche un servizio del tipo HAproxy, e riavviamo il demone dei servizi ed il servizio di Varnish
sudo systemctl daemon-reload
sudo systemctl restart varnish
cambiamo anche la porta del virtualhost su apache e sul file di configurazione delle porte, in particolare
vim /etc/apache2/ports.conf
Listen 8080
vim /etc/apache2/sites-enabled/000-default.conf
la riga della dichiarazione del virtual host
<VirtualHost *:8080>
quindi riavviamo sia Apache che Varnish
sudo systemctl restart varnish
sudo systemctl restart apache2
Verifichiamo che il tutto sia correttamente configurato
sudo curl -I http://localhost_o_ip_server
avremo
HTTP/1.1 200 OK
Date: Sun, 15 Mar 2020 14:27:51 GMT
Server: Apache/2.4.29 (Ubuntu)
Last-Modified: Sun, 15 Mar 2020 13:39:55 GMT
Vary: Accept-Encoding
Content-Type: text/html
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/5.2)
ETag: W/”2aa6-5a0e4d6882f0a-gzip”
Accept-Ranges: bytes
Connection: keep-alive
Varnish fornisce al cuni comandi molto utili, per verificare le statistiche di varnish
sudo varnishstat
verificare i log
sudo varnishlog
ed anche una parte amministrativa (gestita tramite cli) dove poter eseguire operazioni anche più complesse
varnishadm
varnish> help
200
auth <response>
backend.list [-p] [<backend_pattern>]
backend.set_health <backend_pattern> [auto|healthy|sick]……
……
esempio semplice è la verifica dello stato del server di cache
varnish> status
200
Child in state running