Pensa per un momento a cosa è successo quando hai navigato su questa pagina. Hai cliccato su un link che hai ricevuto tramite un newsletter o sul link sulla homepage di Tecmint.com e sei stato portato a questo articolo.
In poche parole, tu (o più precisamente il tuo browser) hai inviato una richiesta HTTP al server web che ospita questo sito e il server ha restituito una risposta HTTP.
Per quanto questo sembri semplice, questo processo comporta molto di più. È stato necessario eseguire molte elaborazioni server-side per presentare la pagina ben formattata che puoi vedere con tutte le risorse in essa – statiche e dinamiche.
Senza approfondire troppo, puoi immaginare che se il server web deve rispondere a molte richieste come questa contemporaneamente (facciamo solo poche centinaia per cominciare), può portare sé stesso o l’intero sistema in uno stallo a breve termine.
Ed è qui che Varnish, un’acceleratore HTTP ad alte prestazioni e reverse proxy, può salvare la situazione. In questo articolo, spiegherò come installare e utilizzare Varnish come frontend per Apache o Nginx al fine di memorizzare nella cache le risposte HTTP più velocemente e senza aggiungere ulteriore carico al server web.
Tuttavia, poiché Varnish normalmente memorizza la sua cache in memoria anziché su disco, dovremo stare attenti e limitare lo spazio di RAM allocato per la memorizzazione nella cache. Discuteremo come fare questo tra poco.
Indice
Note that the custom delimiters ,
Come Funziona Varnish

Installazione della Cache di Varnish nel Server Linux
Questo post presuppone che tu abbia installato un server LAMP o LEMP. Se non lo hai fatto, per favore installa uno di questi stack prima di procedere.
- Come Installare il Server LAMP su Distribuzioni basate su RHEL
- Come Installare il Server LAMP su Ubuntu
- Come Installare il Server LAMP su Debian
- Come Installare il Server LEMP su Distribuzioni basate su RHEL
- Come Installare il Server LEMP su Ubuntu
- Come Installare il Server LEMP su Debian
La documentazione ufficiale consiglia di installare Varnish dal repository dello sviluppatore poiché forniscono sempre l’ultima versione. Puoi anche scegliere di installare il pacchetto dai repository ufficiali della tua distribuzione, anche se potrebbe essere leggermente datato.
Inoltre, tieni presente che i repository del progetto supportano solo sistemi a 64 bit, mentre per le macchine a 32 bit, dovrai ricorrere ai repository mantenuti ufficialmente dalla tua distribuzione.
In questo articolo, installeremo Varnish dai repository supportati ufficialmente da ciascuna distribuzione. La ragione principale dietro questa decisione è fornire uniformità nel metodo di installazione e garantire la risoluzione automatica delle dipendenze per tutte le architetture.
Installare Varnish in Linux basato su Debian
Su distribuzioni basate su Debian, puoi installare Varnish utilizzando il comando apt come mostrato.
# apt update # apt install varnish

Installare Varnish in Linux basato su RHEL
Su distribuzioni basate su RHEL come CentOS, Rocky e AlmaLinux, dovrai abilitare il repository EPEL prima di installare Varnish utilizzando il comando yum come mostrato.
# yum install epel-release # yum update # yum install varnish

Se l’installazione ha esito positivo, avrai una delle seguenti versioni di varnish a seconda della tua distribuzione:
# varnishd -V varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Infine, è necessario avviare manualmente Varnish se il processo di installazione non l’ha fatto per te e abilitare l’avvio in boot.
# systemctl start varnish # systemctl enable varnish # systemctl status varnish

Per impostazione predefinita, la porta 6081 è utilizzata dal servizio varnish e puoi confermarlo eseguendo il seguente comando netstat.
# netstat -tunlp | grep 6081

Configurazione del cache Varnish in Linux
Come abbiamo detto in precedenza, Varnish si trova nel mezzo tra i client esterni e il server web. Per questo motivo, e affinché la memorizzazione nel cache diventi trasparente agli utenti finali, dovremo:
- Modificare la porta predefinita 6081 su cui Varnish ascolta in 80.
- Modificare la porta predefinita su cui il server Web ascolta a 8080 invece della predefinita 80.
- Reindirizzare il traffico in ingresso da Varnish al server web. Fortunatamente, Varnish fa questo automaticamente dopo aver completato i passaggi 1) e 2).
Modifica porta Varnish
Il processo varnishd è controllato da systemd e ha il suo file unità in /usr/lib/systemd/system/varnish.service, che contiene la configurazione di runtime Varnish predefinita.
Qui, è necessario modificare la porta Varnish predefinita da 6081 a porta 80 e la dimensione cache a 1GB come mostrato eseguendo il seguente comando, che aprirà il file unità nell’editor come mostrato.
Nota: È possibile modificare la quantità di memoria in base alle risorse hardware o, in alternativa, scegliere di salvare i file memorizzati nella cache su disco.
$ sudo systemctl edit --full varnish OR # systemctl edit --full varnish

Dopo aver apportato modifiche al file /etc/systemd/system/varnish.service, è necessario ricaricare il demone Systemd eseguendo il seguente comando:
# systemctl daemon-reload
Modifica porta Apache o Nginx
Dopo aver modificato la porta di Varnish, ora è necessario modificare la porta del tuo server web Apache o Nginx dal valore predefinito 80 alla porta di rete più comune, ovvero 8080.
---------- On Debian-based Systems ---------- # nano /etc/apache2/ports.conf [On Apache] # /etc/nginx/sites-enabled/default [On Nginx] ---------- On RHEL-based Systems ---------- # vi /etc/httpd/conf/httpd.conf [On Apache] # vi /etc/nginx/nginx.conf [On Nginx]

Una volta apportate le modifiche, non dimenticare di riavviare Varnish e il server web.
# systemctl restart varnish ---------- On Debian-based Systems ---------- # systemctl restart apache2 # systemctl restart nginx ---------- On RHEL-based Systems ---------- # systemctl restart httpd # systemctl restart nginx
Test della Cache Varnish in Linux
Il primo test consiste nell’effettuare una richiesta HTTP tramite il comando curl e verificare che venga gestita da Varnish:
# curl -I http://localhost

Varnish include anche due strumenti utili:
- Visualizza in tempo reale i log di Varnish, intuitivamente chiamati varnishlog.
- Mostra le statistiche della cache Varnish, chiamate varnishstat.
Come secondo test, nel seguente screencast, visualizzeremo sia i log che le statistiche su un server CentOS (dev1, metà superiore dello schermo) e su un server Debian (dev2, metà inferiore dello schermo) mentre vengono inviate richieste HTTP e ricevute risposte.
Test di Benchmark delle Prestazioni del Server Web
Il nostro terzo e ultimo test consistirà nel benchmark del server web e di Varnish utilizzando lo strumento di benchmarking ab e confrontando i tempi di risposta e il carico della CPU in ogni caso.
In questo esempio specifico, utilizzeremo il server CentOS, ma puoi utilizzare qualsiasi distribuzione e ottenere risultati simili. Guarda il carico medio in alto e la linea Richieste al secondo nell’output di ab.
Con ab, verranno inviati 50 (-c 50) richieste simultanee contemporaneamente e ripeteremo il test 1000000 volte (indicato da -n 1000000). Varnish restituirà un numero maggiore di richieste al secondo e un carico medio molto inferiore.
Importante: Ricorda che Varnish sta ascoltando sulla porta 80 (la porta HTTP predefinita), mentre Apache sta ascoltando sulla porta 8080. Puoi anche prendere nota della quantità di tempo necessaria per completare ogni test.
# ab -c 50 -n 100000 http://localhost/index.html
Conclusione
In questo articolo, abbiamo discusso come configurare una cache Varnish davanti a un server web, Apache, o Nginx. Tieni presente che non abbiamo approfondito il file di configurazione default.vcl, che ci consente di personalizzare ulteriormente la politica di memorizzazione nella cache.
Ora potresti voler fare riferimento alla documentazione ufficiale per ulteriori esempi di configurazione o lasciare un commento utilizzando il modulo sottostante.
Source:
https://www.tecmint.com/install-varnish-cache-server/