Varnish Cache · 7 min read · Feb 12, 2026

Installa Varnish Cache 6 per Apache/Nginx su CentOS 8

Varnish Cache è un potente proxy HTTP inverso utilizzato per accelerare le applicazioni web ed è disponibile come software Open-Source. Varnish memorizza nella cache sia contenuti statici che dinamici. Gestisce tutte le richieste in entrata prima che arrivino al backend del tuo server web. Si trova tra un browser web e il server web Apache o Nginx. La cache di Varnish memorizza tutte le richieste di pagina in arrivo in memoria, in modo che i server web non debbano creare la stessa pagina web ripetutamente.

In questo post, ti mostreremo come installare la cache di Varnish con Apache e Nginx su CentOS 8.

Prerequisiti

  • Un server che esegue CentOS 8.
  • Una password di root configurata sul tuo server.

Iniziare

Prima di iniziare, si consiglia di aggiornare i pacchetti di sistema all’ultima versione. Puoi aggiornarli eseguendo il seguente comando:

dnf update -y

Una volta aggiornati tutti i pacchetti, puoi procedere al passaggio successivo.

Installa Varnish

Per impostazione predefinita, il pacchetto Varnish è incluso nel repository predefinito di CentOS 8. Puoi installarlo eseguendo il seguente comando:

dnf install varnish -y

Dopo aver installato Varnish, modifica il file di configurazione predefinito di Varnish e definisci l’indirizzo del server web Nginx o Apache.

nano /etc/varnish/default.vcl

Cambia le seguenti righe:

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

Salva e chiudi il file quando hai finito.

Configura Varnish

Per impostazione predefinita, Varnish ascolta sulla porta 6081. Quindi dovrai configurare Varnish per ascoltare sulla porta 80. Puoi configurarlo modificando il file varnish.service:

nano /lib/systemd/system/varnish.service

Trova la seguente riga:

ExecStart=/usr/sbin/varnishd -a :6081 -f /etc/varnish/default.vcl -s malloc,256m

Sostituiscila con la seguente riga:

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Salva e chiudi il file, quindi ricarica il demone systemd per applicare le modifiche:

systemctl daemon-reload

Successivamente, avvia il servizio Varnish e abilitalo per avviarsi al riavvio del sistema con il seguente comando:

systemctl start varnish  
systemctl enable varnish

Puoi anche controllare lo stato di Varnish con il seguente comando:

systemctl status varnish

Dovresti ottenere il seguente output:

? varnish.service - Varnish Cache, un acceleratore HTTP ad alte prestazioni
   Loaded: loaded (/usr/lib/systemd/system/varnish.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-03-12 04:17:32 EST; 4s ago
  Process: 6391 ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m (code=exited, status=0/SUCCESS)
 Main PID: 6392 (varnishd)
    Tasks: 217
   Memory: 99.5M
   CGroup: /system.slice/varnish.service
           ??6392 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
           ??6402 /usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Mar 12 04:17:32 masternode systemd[1]: Starting Varnish Cache, un acceleratore HTTP ad alte prestazioni...
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Mar 12 04:17:32 masternode varnishd[6392]: Version: varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7
Mar 12 04:17:32 masternode varnishd[6392]: Platform: Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
Mar 12 04:17:32 masternode varnishd[6391]: Debug: Child (6402) Started
Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) Started
Mar 12 04:17:32 masternode varnishd[6392]: Child (6402) said Child starts
Mar 12 04:17:32 masternode systemd[1]: Started Varnish Cache, un acceleratore HTTP ad alte prestazioni.

A questo punto, Varnish è avviato e ascolta sulla porta 80. Puoi controllarlo con il seguente comando:

ss -antpl | grep varnishd

Dovresti ottenere il seguente output:

LISTEN    0         10               127.0.0.1:34977            0.0.0.0:*        users:(("varnishd",pid=1532,fd=11))                                            
LISTEN    0         128                0.0.0.0:80               0.0.0.0:*        users:(("cache-main",pid=1542,fd=6),("varnishd",pid=1532,fd=6))                
LISTEN    0         128                   [::]:80                  [::]:*        users:(("cache-main",pid=1542,fd=7),("varnishd",pid=1532,fd=7))                
LISTEN    0         10                   [::1]:34909               [::]:*        users:(("varnishd",pid=1532,fd=10))                                            

A questo punto, Varnish è installato e configurato. Puoi ora procedere al passaggio successivo.

Installa e configura Nginx per lavorare con Varnish

Per prima cosa, dovrai installare il pacchetto Nginx sul tuo server. Puoi installarlo con il seguente comando:

dnf install nginx -y

Una volta installato, dovrai cambiare la porta di ascolto di Nginx da 80 a 8080. Puoi farlo modificando il file di configurazione predefinito di Nginx:

nano /etc/nginx/nginx.conf

Cambia le seguenti righe:

        listen       8080 default_server;
        listen       [::]:8080 default_server;

Salva e chiudi il file, quindi verifica la sintassi di Nginx per eventuali errori utilizzando il seguente comando:

ginx -t

Dovresti ottenere il seguente output:

nginx: il file di configurazione /etc/nginx/nginx.conf ha una sintassi corretta
ginx: il test del file di configurazione /etc/nginx/nginx.conf è riuscito

Successivamente, avvia il servizio Nginx e abilitalo per avviarsi al riavvio del sistema:

systemctl start nginx  
systemctl enable nginx

Puoi anche verificare la porta di ascolto di Nginx con il seguente comando:

ss -antpl | grep 8080

Dovresti ottenere il seguente output:

LISTEN    0         128                0.0.0.0:8080             0.0.0.0:*        users:(("nginx",pid=5569,fd=8),("nginx",pid=5568,fd=8))                        
LISTEN    0         128                   [::]:8080                [::]:*        users:(("nginx",pid=5569,fd=9),("nginx",pid=5568,fd=9))                        

A questo punto, la cache di Varnish è installata e configurata per inoltrare tutte le richieste che arrivano sulla porta 80 al server web Nginx che ascolta sulla porta 8080.

Puoi verificare se la cache di Varnish sta funzionando o meno con il seguente comando:

curl -I http://localhost

Dovresti ottenere il seguente output:

HTTP/1.1 200 OK
Server: nginx/1.14.1
Date: Fri, 12 Mar 2021 09:18:32 GMT
Content-Type: text/html
Content-Length: 4057
Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT
ETag: "5d9bab28-fd9"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Accept-Ranges: bytes
Connection: keep-alive

Installa e configura Apache per lavorare con Varnish

Per prima cosa, dovrai installare il pacchetto del server web Apache sul tuo sistema. Puoi installarlo con il seguente comando:

dnf install httpd -y

Dopo aver installato Apache, modifica il file di configurazione predefinito di Apache e cambia la porta di ascolto da 80 a 8080.

nano /etc/httpd/conf/httpd.conf

Cambia la seguente riga:

Listen 8080

Salva e chiudi il file, quindi avvia il servizio Apache e abilitalo per avviarsi al riavvio del sistema con il seguente comando:

systemctl start httpd  
systemctl enable httpd

Puoi anche verificare la porta di ascolto di Apache con il seguente comando:

ss -antpl | grep httpd

Dovresti ottenere il seguente output:

LISTEN    0         128                      *:8080                   *:*        users:(("httpd",pid=7556,fd=4),("httpd",pid=7555,fd=4),("httpd",pid=7554,fd=4),("httpd",pid=7552,fd=4))

A questo punto, la cache di Varnish è installata e configurata per inoltrare tutte le richieste che arrivano sulla porta 80 al server web Apache che ascolta sulla porta 8080.

Puoi verificare se la cache di Varnish sta funzionando o meno con il seguente comando:

curl -I http://localhost

Dovresti ottenere il seguente output:

Date: Fri, 12 Mar 2021 09:21:14 GMT
Server: Apache/2.4.37 (centos)
Content-Location: index.html.zh-CN
Vary: negotiate,accept-language
TCN: choice
Last-Modified: Fri, 14 Jun 2019 03:37:43 GMT
ETag: "fa6-58b405e7d6fc0;5bd5365602e05"
Accept-Ranges: bytes
Content-Length: 4006
Content-Type: text/html; charset=UTF-8
Content-Language: zh-cn
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Connection: keep-alive

Lavorare con la linea di comando di Varnish

Varnish viene fornito con diverse utilità utili che ti aiutano a monitorare e controllare Varnish.

varnishadm è un’utilità da riga di comando utilizzata per elencare i backend configurati.

varnishadm

Dovresti vedere il seguente output:

200        
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,4.18.0-193.6.3.el8_2.x86_64,x86_64,-junix,-smalloc,-sdefault,-hcritbit
varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7

Type 'help' for command list.
Type 'quit' to close CLI session.

Ora, esegui il seguente comando per elencare tutti i backend:

varnish> backend.list

Dovresti vedere il seguente output:

200        
Backend name                   Admin      Probe                Last updated
boot.default                   probe      Healthy (no probe)   Sat, 13 Mar 2021 03:00:02 GMT

varnishlog

L’utilità varnishlog viene utilizzata per visualizzare i log di tutte le richieste degli utenti.

varnishlog

Dovresti ottenere il seguente output:

*   << BeReq    >> 6         
-   Begin          bereq 5 fetch
-   VCL_use        boot
-   Timestamp      Start: 1615604631.507187 0.000000 0.000000
-   BereqMethod    GET
-   BereqURL       /
-   BereqProtocol  HTTP/1.1
-   BereqHeader    Host: 69.87.218.214
-   BereqHeader    Upgrade-Insecure-Requests: 1
-   BereqHeader    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36
-   BereqHeader    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
-   BereqHeader    Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
-   BereqHeader    X-Forwarded-For: 106.213.193.241
-   BereqHeader    Accept-Encoding: gzip
-   BereqHeader    X-Varnish: 6
-   VCL_call       BACKEND_FETCH
-   VCL_return     fetch
-   BackendOpen    31 boot.default 127.0.0.1 8080 127.0.0.1 58860
-   BackendStart   127.0.0.1 8080
-   Timestamp      Bereq: 1615604631.507458 0.000270 0.000270
-   Timestamp      Beresp: 1615604631.507844 0.000657 0.000386
-   BerespProtocol HTTP/1.1
-   BerespStatus   200
-   BerespReason   OK
-   BerespHeader   Server: nginx/1.14.1
-   BerespHeader   Date: Sat, 13 Mar 2021 03:03:51 GMT
-   BerespHeader   Content-Type: text/html
-   BerespHeader   Content-Length: 4057
-   BerespHeader   Last-Modified: Mon, 07 Oct 2019 21:16:24 GMT

varnishstat

Il comando varnishstat ti fornisce informazioni sulle statistiche in memoria, lo storage, i thread creati e gli oggetti eliminati.

varnishstat

Dovresti vedere il seguente schermo:

Statistiche di Varnish

varnishtop

Il comando varnishtop legge i log di memoria condivisa di varnishd e presenta un elenco continuamente aggiornato delle voci di log più comuni.

varnishtop

Dovresti vedere il seguente schermo:

varnishtop

varnishhist

Varnishhist analizza i log di varnish e stampa le ultime n richieste in base al loro processamento.

varnishhist

Dovresti vedere il seguente schermo:

varnishhist

Conclusione

Nella guida sopra, hai imparato come installare e configurare la cache di Varnish con il server web Apache e Nginx. Puoi ora implementare la cache di Varnish nell’ambiente di produzione e migliorare le prestazioni del tuo sito web. Non esitare a chiedermi se hai domande.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.