Ricerca nel sito web

Come installare Varnish Cache per Apache su CentOS/RHEL 8


Varnish Cache è un acceleratore di applicazioni web open source gratuito, moderno e ad alte prestazioni. Si tratta di un proxy HTTP inverso rapido che memorizza nella cache i contenuti per accelerare le prestazioni del server Web, archiviando i contenuti Web nella memoria del server, in una cache. È configurato per essere eseguito davanti a un server di origine come il server web Apache (HTTPD).

Quando un client richiede contenuto, Varnish accetta la richiesta HTTP, invia la richiesta al server di origine, memorizza nella cache gli oggetti restituiti e risponde alla richiesta del client. La prossima volta che il client richiederà lo stesso contenuto, Varnish lo servirà dalla cache. In questo modo, riduce il tempo di risposta e il consumo di larghezza di banda della rete su future richieste equivalenti.

Varnish funziona anche come router di richieste HTTP, firewall per applicazioni web, bilanciatore del carico e altro ancora. È configurato utilizzando il flessibile Varnish Configuration Language (VCL) che è estensibile utilizzando i Varnish Modules (noti anche come VMOD ), supporti per Edge Side Include (ESL), compressione e decompressione Gzip e molto altro.

In questo articolo imparerai come installare il server web Apache HTTPD e Varnish Cache 6 su un nuovo server CentOS/RHEL 8, inclusa la configurazione Varnish da eseguire davanti al server HTTPD.

Prerequisiti:

  • Un server con installazione CentOS 8
  • Un server con installazione RHEL 8 con abbonamento Red Hat abilitato sul tuo sistema.

Passaggio 1: installazione del server Web Apache su CentOS/RHEL 8

1. Inizia aggiornando tutti i pacchetti software installati sul sistema come segue utilizzando il comando DNF.

dnf update

2. Successivamente, esegui il comando seguente per installare il server web Apache HTTP dal repository AppStream.

dnf install httpd

3. Non appena l'installazione è completata, avvia il servizio httpd, abilitalo all'avvio automatico durante l'avvio del sistema e controlla il suo stato per confermare che sia attivo e funzionante, utilizzando il comando systemctl.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. Per impostazione predefinita, CentOS/RHEL 8 include un firewall completamente bloccato (esegui firewall-cmd –state per confermare). È necessario aprire l'accesso al servizio HTTP nel firewall per consentire agli utenti di accedere a siti Web o applicazioni eseguite su HTTP e inoltre ricaricare le impostazioni del firewall per applicare le nuove modifiche.

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

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

5. Ora che il server web Apache è in esecuzione, puoi procedere ulteriormente con l'installazione di Varnish Cache sul sistema utilizzando il seguente comando.

dnf module install varnish

6. Dopo un'installazione riuscita, puoi verificare la versione di Varnish installata sul tuo sistema.

varnishd -V

7. Successivamente, l'eseguibile principale viene installato come /usr/sbin/varnishd. Inoltre, i file di configurazione di Varnish sono archiviati nella directory /etc/varnish, dove:

  • /etc/varnish/default.vcl – è il file di configurazione principale di Paint scritto utilizzando VCL.
  • /etc/varnish/secret – è il file segreto di Paint.

8. Ora avvia il servizio Paint, per ora, abilitalo all'avvio automatico durante l'avvio del sistema in caso di riavvio del server e controlla il suo stato per assicurarti che sia attivo e funzionante come segue.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Passaggio 3: configurazione di Apache per funzionare con Varnish Cache

9. Ora è il momento di configurare Varnish Cache per l'esecuzione davanti al servizio Apache. Per impostazione predefinita, il server Apache è configurato per ascoltare sulla porta 80, questo è definito nel file di configurazione principale /etc/httpd/conf/httpd.conf.

Aprilo per la modifica utilizzando il tuo editor di testo preferito.

vi /etc/httpd/conf/httpd.conf

Cerca il parametro Ascolta. Per eseguire Varnish davanti al server Apache, dovresti modificare la porta predefinita 80 in 8080 (o qualsiasi altra porta di tua scelta) come mostrato nello screenshot seguente.

Questa porta verrà aggiunta successivamente come porta del server backend nel file di configurazione di Varnish.

Inoltre, la configurazione dell'host virtuale per ogni sito web/applicazione che servirà tramite Varnish dovrebbe essere configurata per ascoltare la porta di cui sopra. Ecco la configurazione per il nostro sito di prova (/etc/httpd/conf.d/tecmint.lan.conf).

<VirtualHost *:8080>
    DocumentRoot "/var/www/html/tecmint.lan/"
    ServerName www.tecmint.lan
    # Other directives here
</VirtualHost>

Importante: per evitare che venga utilizzata la pagina di test predefinita del server HTTP Apache, commentare tutte le righe nel file /etc/httpd/conf.d /welcome.conf o semplicemente eliminare il file.

rm /etc/httpd/conf.d/welcome.conf 

10. Successivamente, verifica la presenza di eventuali errori nella sintassi di configurazione httpd. Se è ok, riavvia il servizio httpd per applicare le nuove modifiche.

httpd -t
systemctl restart httpd

Configurazione di Varnish per Systemd

11. Per implementare Varnish davanti a HTTPD, devi semplicemente configurarlo per ascoltare le richieste del client nella porta HTTP predefinita 80 come spiegato sotto.

Tieni presente che in Varnish Cache 6.0 e versioni successive, devi impostare la porta su cui il server Paint è in ascolto nel file del servizio Varnish per systemd. Innanzitutto, aprilo per la modifica.

systemctl edit --full  varnish

Cerca la riga ExecStart, quindi modifica il valore dell'opzione -a (che specifica il paint in ascolto dell'indirizzo e della porta) da :6081 a :80 come indicato nello screenshot seguente.

È importante sottolineare che 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.

Configurazione dei server backend Varnish utilizzando VCL

12. Ora devi configurare il server di origine, noto nella terminologia Varnish come backend. È il server che capisce HTTP con cui Varnish comunica per recuperare il contenuto – httpd in questo caso. È configurato nel file di configurazione principale /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Esiste una sezione di configurazione backend predefinita chiamata default. Puoi modificare "predefinito" in server1 (o qualsiasi nome di tua scelta per soddisfare gli standard del tuo ambiente). Per impostazione predefinita, il parametro host punta a localhost, presupponendo che il server backend sia in esecuzione sul localhost.

Quindi imposta la porta su 8080 (la porta che hai definito nel file di configurazione dell'host virtuale Apache) come mostrato nello screenshot.

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

Se il tuo server backend è in esecuzione su un host diverso, ad esempio un altro server con indirizzo 10.42.1.10, il parametro host dovrebbe puntare a questo indirizzo IP.

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

Salva il file e chiudilo.

13. Dopo aver apportato tutte le modifiche necessarie relative a Varnish, ricaricare la configurazione del gestore systemd per riflettere le nuove modifiche nel file del servizio Varnish e riavviare anche il servizio Varnish per applicare le modifiche generali.

systemctl daemon-reload
systemctl restart varnish

14. A questo punto, Varnish e Apache dovrebbero essere in ascolto rispettivamente sulle porte 80 e 8080. Puoi confermarlo utilizzando il comando socket Statistics.

ss -tpln

Passaggio 4: test di Varnish Cache e configurazione di Apache

14. Per testare la configurazione Varnish Cache-HTTPD, aprire un browser Web e navigare utilizzando l'IP o il FQDN del server. come mostrato nello screenshot seguente.

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

Quindi controlla se le pagine web vengono servite tramite Varnish Cache come segue. Controlla le intestazioni HTTP facendo clic con il pulsante destro del mouse sulla pagina Web visualizzata, seleziona Ispeziona per aprire gli strumenti per sviluppatori, quindi fai clic sulla scheda Rete e ricarica la pagina. Quindi seleziona una richiesta per visualizzare le intestazioni HTTP per confermarlo, come mostrato nello screenshot seguente.

In alternativa, puoi eseguire il seguente comando curl per verificarlo.

curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan

Utili programmi di utilità Varnish Cache

15. Concludiamo questa guida esaminando alcuni dei programmi utili forniti con la distribuzione Varnish Cache. Includono utilità per l'amministrazione della cache di Paint, la visualizzazione di record di registro dettagliati e la visualizzazione delle statistiche sulle prestazioni di Paint come descritto di seguito.

verniceadm

Il primo è varnishadm che viene utilizzato per amministrare un'istanza di Varnish in esecuzione. Stabilisce una connessione dell'interfaccia della riga di comando a varnishd. Può influenzare un'istanza in esecuzione di Varnish avviando e arrestando varnishd, modificando i parametri di configurazione, ricaricando la VCL, elencando i backend e altro.

varnishadm
> backend.list

Per ulteriori informazioni, leggi man verniciadm.

paintlog

Il programma successivo è varnishlog che viene utilizzato per accedere ai dati specifici della richiesta (ovvero informazioni su clienti e richieste specifici). Fornisce grandi quantità di informazioni, quindi di solito è necessario filtrarle.

varnishlog

Per ulteriori informazioni, leggi il man paintlog.

paintstat

Abbiamo anche varnishstat (vernish Statistics) che viene utilizzato per accedere alle statistiche generali come il numero di richieste totali, il numero di oggetti e altro.

varnishstat

Per ulteriori informazioni, leggi man paintstat.

parte superiore verniciata

Poi abbiamo varnishtop, un'utilità che legge il registro di Varnish e presenta un elenco continuamente aggiornato delle voci di registro più frequenti.

varnishtop 

Per ulteriori informazioni, leggere il vernicetop uomo.

painthist

Un'altra utilità utile è varnishhist (varnish History). L'utility legge i log di Varnish e presenta un istogramma continuamente aggiornato che mostra la distribuzione delle ultime N richieste in base alla loro in lavorazione.

varnishhist

Per ulteriori informazioni, leggi la man painthist.

Ecco qua! Hai distribuito con successo Varnish Cache per accelerare i contenuti della tua applicazione web serviti utilizzando il server Apache HTTP su CentOS/RHEL 8.

Se hai domande su questo argomento o pensieri da condividere, utilizza il modulo di feedback qui sotto. Consulta la documentazione di Varnish Cache 6.0 per ulteriori informazioni.

Se desideri abilitare HTTPS sul tuo sito, consulta il nostro prossimo articolo, che mostrerà come abilitare SSL/TLS per Varnish Cache utilizzando Hitch su CentOS/RHEL 8.