Ricerca nel sito web

Come installare Varnish Cache 6 per Nginx su CentOS/RHEL 8


Varnish Cache (comunemente indicato come Varnish) è un acceleratore HTTP proxy inverso open source, potente e veloce con architettura moderna e flessibilità linguaggio di configurazione. Essere un proxy inverso significa semplicemente che è un software che puoi distribuire davanti al tuo server web (che è il server di origine o backend) come Nginx, per ricevere le richieste HTTP dei clienti e inoltrarle al server di origine per l'elaborazione. E fornisce la risposta dal server di origine ai client.

Varnish funge da intermediario tra Nginx e i clienti ma con alcuni vantaggi in termini di prestazioni. Il suo scopo principale è velocizzare il caricamento delle applicazioni, funzionando come un motore di caching. Riceve le richieste dai client e le inoltra una volta al backend per memorizzare nella cache il contenuto richiesto (archiviare file e frammenti di file in memoria). Quindi tutte le richieste future per contenuti esattamente simili verranno servite dalla cache.

Ciò velocizza il caricamento delle tue applicazioni web e migliora indirettamente le prestazioni complessive del tuo server web perché Varnish servirà i contenuti dalla memoria invece di Nginx che elabora i file dal disco di archiviazione.

Oltre alla memorizzazione nella cache, Varnish ha anche molti altri casi d'uso tra cui un router di richieste HTTP, un bilanciatore del carico, un firewall per applicazioni Web e altro ancora.

Il varnish è configurato utilizzando il Varnish Configuration Language (VCL) integrato altamente estensibile che consente di scrivere policy su come dovrebbero essere le richieste in entrata gestito. Puoi usarlo per creare soluzioni, regole e moduli personalizzati.

In questo articolo, seguiremo i passaggi per installare il server web Nginx e Varnish Cache 6 su un nuovo CentOS 8 o server RHEL 8. Gli utenti di RHEL 8 devono assicurarsi di abilitare l'abbonamento a RedHat.

Per configurare uno stack LEMP completo invece di installare solo il server web Nginx, consulta le seguenti guide.

  1. Come installare il server LEMP su CentOS 8
  2. Come installare il server LEMP su RHEL 8

Passaggio 1: installare il server Web Nginx su CentOS/RHEL 8

1. CentOS/RHEL 8 viene fornito con l'ultima versione del software del server web Nginx, quindi lo installeremo dal repository predefinito utilizzando il comando seguendo i comandi dnf.

dnf update
dnf install nginx

2. Una volta installato Nginx, è necessario avviare, abilitare e verificare lo stato utilizzando i seguenti comandi systemctl.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Se sei un po' curioso, puoi anche controllare il socket TCP Nginx, che viene eseguito sulla porta 80 per impostazione predefinita, utilizzando il seguente comando ss.

ss -tpln

4. Se stai utilizzando il firewall sul sistema, assicurati di aggiornare le regole del firewall per consentire le richieste a un server web.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Passaggio 2: installazione di Varnish Cache 6 su CentOS/RHEL 8

5. CentOS/RHEL 8 fornisce per impostazione predefinita un modulo Varnish Cache DNF che contiene la versione 6.0 LTS (Supporto a lungo termine).

Per installare il modulo, eseguire il comando seguente.

dnf module install varnish

6. Una volta completata l'installazione del modulo, puoi verificare la versione di Varnish installata sul tuo sistema.

varnishd -V

7. Dopo aver installato Varnish Cache, il comando eseguibile principale installato in /usr/sbin/varnishd e i file di configurazione di Paint si trovano in /etc/vernice/.

Il file /etc/varnish/default.vcl è il file di configurazione principale della vernice scritto utilizzando VCL e /etc/varnish/secret è la vernice fascicolo segreto.

8. Successivamente, avvia il servizio Varnish, abilitalo all'avvio automatico durante l'avvio del sistema e conferma che sia attivo e funzionante.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Passaggio 3: configurazione di Nginx per funzionare con Varnish Cache

9. In questa sezione, mostreremo come configurare Varnish Cache per essere eseguito davanti a Nginx. Per impostazione predefinita Nginx ascolta sulla porta 80, normalmente ogni blocco di server (o host virtuale) è configurato per ascoltare su questa porta.

Ad esempio, dai un'occhiata al blocco server nginx predefinito configurato nel file di configurazione principale (/etc/nginx/nginx.conf).

vi /etc/nginx/nginx.conf

Cerca la sezione del blocco del server come mostrato nello screenshot seguente.

10. Per eseguire Varnish davanti a Nginx, dovresti modificare la porta Nginx predefinita da 80 a 8080 (o qualsiasi altra porta di tua scelta).

Questo dovrebbe essere fatto in tutti i futuri file di configurazione del blocco server (solitamente creati in /etc/nginx/conf.d/) per i siti o le applicazioni web che desideri servire tramite Varnish .

Ad esempio, il blocco server per il nostro sito di prova tecmint.lan è /etc/nginx/conf.d/tecmint.lan.conf e ha la seguente configurazione.

server {
        listen       8080;
        server_name  www.tecmint.lan;
        root         /var/www/html/tecmint.lan/;
        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

Importante: ricorda di disabilitare il blocco del server predefinito commentando la sua sezione di configurazione nel file /etc/nginx/nginx.conf come mostrato nella schermata seguente. Ciò ti consente di iniziare a eseguire altri siti Web/applicazioni sul tuo server, altrimenti Nginx indirizzerà sempre le richieste al blocco server predefinito.

11. Una volta completata la configurazione, controlla eventuali errori nel file di configurazione e riavvia il servizio Nginx per applicare le modifiche recenti.

nginx -t
systemctl restart nginx

12. Successivamente, per ricevere richieste HTTP dai client, dobbiamo configurare Varnish per l'esecuzione sulla porta 80. A differenza delle versioni precedenti di Varnish Cache in cui questa modifica è stata apportata nel file di ambiente Varnish (che ora è deprecato), nella versione 6.0 e successive .

Dobbiamo apportare la modifica richiesta nel file del servizio Varnish. Eseguire il comando seguente per aprire il file di servizio appropriato per la modifica.

systemctl edit --full  varnish

Trova la riga seguente e modifica il valore dell'opzione -a, che specifica l'indirizzo e la porta di ascolto. Imposta la porta su 80 come mostrato nello screenshot seguente.

Nota se non specifichi un indirizzo, varnishd sarà in ascolto su tutte le interfacce IPv4 e IPv6 disponibili attive sul server.

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

Salvare le modifiche nel file ed uscire.

13. Successivamente, devi definire il server backend che Varnish visiterà per recuperare i contenuti. Questo viene fatto nel file di configurazione principale di Varnish.

vi /etc/varnish/default.vcl 

Cerca la sezione di configurazione del backend predefinito e modifica la stringa "default" in server1 (o qualsiasi nome di tua scelta per rappresentare il tuo server di origine). Quindi imposta la porta su 8080 (o la porta di ascolto Nginx che hai definito nel blocco del server).

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

Per questa guida, stiamo eseguendo Varnish e Nginx sullo stesso server. Se il tuo server web Nginx è in esecuzione su un host diverso. Ad esempio, un altro server con indirizzo 10.42.0.247, quindi imposta il parametro .host come mostrato.

backend server1 {
    .host = "10.42.0.247";
    .port = "8080";
}

Salva il file e chiudilo.

14. Successivamente, è necessario ricaricare la configurazione del gestore systemd a causa delle recenti modifiche nel file del servizio Varnish, quindi riavviare il servizio Varnish per applicare le modifiche come segue.

systemctl daemon-reload
systemctl restart varnish

15. Ora conferma che Nginx e Varnish sono in ascolto sui socket TCP configurati.

ss -tpln

Passaggio 4: test della configurazione della cache Varnish di Nginx

16. Successivamente, verifica che le pagine web vengano servite tramite Varnish Cache come segue. Aprire un browser Web e navigare utilizzando l'IP del server o FDQN come mostrato nello screenshot seguente.

http://www.tecmin.lan
OR
http://10.42.0.144

17. In alternativa, utilizza il comando curl come mostrato. Utilizza l'indirizzo IP del tuo server o l'FQDN del sito web oppure utilizza 127.0.0.1 o localhost se stai testando localmente.

curl -I http:///www.tecmint.lan

Utili utilità di amministrazione della cache di Varnish

18. In questa sezione finale, descriveremo brevemente alcuni degli utili programmi di utilità forniti con Varnish Cache, che puoi utilizzare per controllare varnishd , accedi ai registri in memoria, alle statistiche generali e altro ancora.

verniceadm

varnishadm un'utilità per controllare un'istanza di Varnish in esecuzione. Stabilisce una connessione CLI a Paintd. Ad esempio, puoi usarlo per elencare i backend configurati come mostrato nello screenshot seguente (leggi man verniciadm per maggiori informazioni).

varnishadm
varnish> backend.list

paintlog

L'utilità varnishlog fornisce l'accesso a dati specifici della richiesta. Offre informazioni su clienti e richieste specifici (leggi man paintlog per ulteriori informazioni).

varnishlog

paintstat

Un varnishstat noto anche come statistiche Varnish, che ti dà uno sguardo alle prestazioni attuali di Varnish fornendo accesso alle statistiche in memoria come riscontri positivi e mancati nella cache, informazioni sullo spazio di archiviazione , discussioni create, oggetti cancellati (leggi man paintstat per maggiori informazioni).

varnishstat 

parte superiore verniciata

Un'utilità varnishtop legge i log della memoria condivisa e presenta un elenco continuamente aggiornato delle voci di log più frequenti (leggi man painttop per maggiori informazioni).

varnishtop 

painthist

Un'utilità varnishhist (cronologia di vernice) analizza i registri di vernice e genera un istogramma continuamente aggiornato che mostra la distribuzione delle ultime n richieste in base alla loro elaborazione ( leggereman painthist per ulteriori informazioni).

varnishhist

È tutto! In questa guida, abbiamo mostrato come installare Varnish Cache ed eseguirlo davanti al server Nginx HTTP per accelerare la distribuzione dei contenuti web in CentOS/RHEL 8.

Eventuali pensieri o domande su questa guida possono essere condivisi utilizzando il modulo di feedback riportato di seguito. Per ulteriori informazioni, leggere la documentazione di Varnish Cache.

Lo svantaggio principale di Varnish Cache è la mancanza di supporto nativo per HTTPS. Per abilitare HTTPS sul tuo sito web/applicazione, devi configurare un proxy di terminazione SSL/TLS che funzioni insieme a Varnish Cache per proteggere il tuo sito. Nel nostro prossimo articolo, mostreremo come abilitare HTTPS per Varnish Cache utilizzando Hitch su CentOS/RHEL 8.