Ricerca nel sito web

Installa Varnish Cache 5.2 per potenziare le prestazioni di Apache su CentOS 7


Varnish Cache (comunemente noto come Varnish), è un popolare acceleratore HTTP proxy inverso open source destinato ad accelerare i server Web. È progettato per endpoint API eccessivamente utilizzati e anche per siti dinamici che offrono contenuti enormi e registrano un traffico elevato.

Fondamentalmente aiuta a ridurre il carico della CPU; supporta il bilanciamento del carico sui server Web e consente a un browser Web di caricare rapidamente i siti come risultato della memorizzazione della cache nella RAM. Numerose grandi aziende lo utilizzano, tra cui Facebook, Twitter e Wikipedia solo per citarne alcune.

Requisiti

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

In questo articolo, spiegherò come installare e utilizzare Varnish Cache 6.5 come front-end per un server web Apache in CentOS 7 ( funziona anche su RHEL 7).

Passaggio 1: installa il server Web Apache su CentOS 7

1. Installa innanzitutto il server HTTP Apache dai repository software CentOS predefiniti utilizzando il gestore pacchetti YUM come segue.

yum install httpd

2. Una volta installato Apache, avvialo per il momento e abilitalo all'avvio automatico all'avvio del sistema.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

3. Successivamente aggiorna 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-service=http
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 devi aggiungere il repository ufficiale 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_varnish65.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 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 Apache per funzionare con Varnish Cache

11. Ora configura Apache in modo che funzioni insieme a Varnish Cache. Per impostazione predefinita Apache è in ascolto sulla porta 80, è necessario modificare la porta HTTPD predefinita in 8080: questo garantirà che HTTPD venga eseguito dietro la memorizzazione nella cache di Varnish.

Puoi utilizzare il comando sed per cambiare la porta da 80 a 8080 come mostrato.

sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf

Nota: inoltre, devi modificare la porta sulla configurazione del tuo host virtuale per ogni sito web che desideri servire tramite Varnish. 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>

12. Successivamente, apri il file di configurazione di paint systemd e trova il parametro ExecStart che specifica la porta su cui Varnish è in ascolto e modifica il suo valore da 6081 a 80 come mostrato nello screenshot.

systemctl edit --full  varnish

Al termine, la configurazione dovrebbe assomigliare a questa.

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

13. Successivamente, configura Apache 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";
}

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

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

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

systemctl daemon-reload
systemctl restart httpd
systemctl restart varnish

Passaggio 4: testare Varnish Cache su Apache

15. Infine, verifica se Varnish è abilitato e funziona con il servizio HTTPD utilizzando il comando cURL di seguito, che può essere utilizzato per visualizzare l'intestazione HTTP.

curl -I http://localhost
Uscita del campione
HTTP/1.1 200 OK
Date: Wed, 06 Jan 2021 08:36:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
X-Varnish: 131085
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Connection: keep-alive

Per ulteriori informazioni, consulta il repository Github di Varnish Cache: https://github.com/varnishcache/varnish-cache

In questo tutorial, abbiamo spiegato come configurare il proxy Varnish Cache 6.5 per il server HTTP Apache su CentOS 7. Se hai domande o idee aggiuntive da condividere, utilizza il modulo di feedback qui sotto per risponderci .