Ricerca nel sito web

Come installare Varnish Cache 5.2 per Nginx su CentOS 7


Varnish Cache (noto anche come Varnish) è un acceleratore HTTP open source ad alte prestazioni progettato per velocizzare i server Web. Nei nostri ultimi articoli abbiamo spiegato come configurare Varnish Cache per Apache su CentOS 7 e CentOS 8.

In questo articolo, ti mostreremo come installare e utilizzare Varnish Cache come front-end per il server HTTP Nginx in CentOS 7. Questa guida dovrebbe funzionare anche su RHEL 7.

Requisiti

  1. Un CentOS 7 con Apache installato
  2. Un CentOS 7 con un indirizzo IP statico

Passaggio 1: installa il server Web Nginx su CentOS 7

1. Inizia installando il server Nginx HTTP dai repository software CentOS predefiniti utilizzando il gestore pacchetti YUM come segue.

yum install nginx

2. Al termine dell'installazione, avvia per ora il servizio Nginx e abilitalo all'avvio automatico all'avvio del sistema.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Ora modifica le regole del firewall di sistema per consentire i pacchetti in entrata sulla porta 80 utilizzando i comandi seguenti.

firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload

Passaggio 2: installa Varnish Cache su CentOS 7

4. Ora ci sono pacchetti RPM precompilati per l'ultima versione di Varnish Cache 6 (cioè 6.5 al momento in cui scrivo), quindi è necessario aggiungere il repository ufficiale di Varnish Cache.

Prima di ciò, devi abilitare il repository EPEL per installare diversi pacchetti di dipendenze come mostrato.

yum install -y epel-release

5. Successivamente, installa pygpgme, un pacchetto per la gestione delle firme GPG e yum-utils, una raccolta di utili utilità che estendono le funzionalità native di yum in vari modi.

yum install pygpgme yum-utils

6. Ora crea un file denominato /etc/yum.repos.d/varnishcache_varnish5.repo che contiene la configurazione del repository di seguito.

vi /etc/yum.repos.d/varnishcache_varnish65.repo

Importante: assicurati di sostituire el e 7 nella configurazione seguente con la tua distribuzione e versione Linux:

[varnishcache_varnish65]
name=varnishcache_varnish65
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[varnishcache_varnish65-source]
name=varnishcache_varnish65-source
baseurl=https://packagecloud.io/varnishcache/varnish65/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish65/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

7. Ora esegui il comando seguente per aggiornare la tua cache yum locale e installare il pacchetto paint cache (non dimenticare di accettare la chiave GPG digitando y o yes durante l'installazione del pacchetto):

yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65'
yum install varnish 

8. Dopo aver installato Varnish Cache, l'eseguibile principale verrà installato come /usr/sbin/varnishd e i file di configurazione di Paint si trovano in /etc/vernice/:

  • /etc/varnish/default.vcl – questo è il file di configurazione principale di Paint, è scritto utilizzando il linguaggio di configurazione di Vanish (VCL).

9. Ora avvia il servizio Paint, abilitalo all'avvio automatico durante l'avvio del sistema e verifica il suo stato per assicurarti che sia attivo e funzionante come segue.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

10. Puoi confermare che l'installazione di Varnish è andata a buon fine vedendo la posizione dell'eseguibile di Varnish e la versione installata sul tuo sistema.

which varnishd
varnishd -V
Uscita del campione
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

Passaggio 3: configura Nginx per funzionare con Varnish Cache

11. In questo passaggio, devi configurare Nginx per funzionare con Varnish Cache. Per impostazione predefinita, Nginx è in ascolto sulla porta 80, dovresti modificare la porta Nginx predefinita su 8080 in modo che funzioni dietro la memorizzazione nella cache di Varnish.

Apri il file di configurazione di Nginx /etc/nginx/nginx.conf e trova la riga listen 80 e modificala in listen 8080 come nel server blocco mostrato nello screenshot qui sotto.

vi /etc/nginx/nginx.conf

Nota: questa operazione dovrebbe essere eseguita in tutti i file di configurazione del blocco server (solitamente creati in /etc/nginx/conf.d/) per i siti Web che desideri servire tramite Vernice.

12. Successivamente, apri il file di configurazione del servizio Paint e trova il parametro ExecStart che specifica la porta su cui Varnish è in ascolto e modifica il suo valore da 6081 a 80.

systemctl edit --full  varnish

La linea dovrebbe apparire come mostrato.

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

13. Successivamente, configura Nginx come server backend per il proxy Varnish, nel file di configurazione /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Trova la sezione backend e definisci l'IP e la porta dell'host. Di seguito è riportata la configurazione del backend predefinita, impostala in modo che punti al tuo attuale server di contenuti.

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

14. Dopo aver eseguito tutte le configurazioni necessarie, riavviare Nginx HTTPD e Varnish cache per rendere effettive le modifiche di cui sopra.

systemctl daemon-reload
systemctl restart nginx
systemctl restart varnish

Passaggio 4: testare Varnish Cache su Nginx

15. Infine, verifica se la cache Varnish è abilitata e funziona con il servizio Nginx utilizzando il comando cURL di seguito per visualizzare l'intestazione HTTP.

curl -I http://localhost
Uscita del campione
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Wed, 06 Jan 2021 09:24:18 GMT
Content-Type: text/html
Content-Length: 4833
Last-Modified: Fri, 16 May 2014 15:12:48 GMT
ETag: "53762af0-12e1"
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Accept-Ranges: bytes
Connection: keep-alive

Puoi trovare ulteriori informazioni nel repository Github di Varnish Cache: https://github.com/varnishcache/varnish-cache

In questo tutorial, abbiamo spiegato come configurare Varnish Cache per il server HTTP Nginx su CentOS 7. Utilizza il modulo commenti qui sotto per inviarci qualsiasi domanda o idea extra.