Come velocizzare Apache con la cache Varnish su CentOS 7

(comunemente conosciuto come ), è un acceleratore HTTP reverse-proxy open-source e popolare ideato per velocizzare i server web. È progettato per i punti terminali delle API ad utilizzo eccessivo e anche per i siti dinamici che servono contenuti di grandi dimensioni ed hanno un alto traffico.

Aiuta a ridurre il carico della CPU; supporta il bilanciamento del carico sui server web e consente al browser di caricare rapidamente i siti grazie alla memorizzazione della cache in RAM. Diverse grandi aziende lo utilizzano tra cui , e per citarne solo alcune.

Requisiti

  1. A CentOS 7 with Apache installed
  2. A CentOS 7 with a static IP address

In questo articolo, spiegherò come installare e utilizzare come front-end per un server web in (funziona anche su ).

Passaggio 1: Installare il server web Apache su CentOS 7

1. Prima di tutto, installa il server HTTP Apache dai repository software predefiniti di CentOS utilizzando il gestore di pacchetti come segue.

# yum install httpd
Install Apache on CentOS 7

2. Una volta installato Apache, avvialo temporaneamente e abilita l’avvio automatico al boot del sistema.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Start and Enable Apache

3. Aggiorna il sistema di firewall per consentire pacchetti in entrata sulla porta 80 usando i comandi riportati di seguito.

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --reload
Open Apache Port on Firewall

Passo 2: Installare Varnish Cache su CentOS 7

4. Ora ci sono pacchetti RPM precompilati per la versione più recente di Varnish Cache 6 (cioè 6.5 al momento della scrittura), quindi devi aggiungere il repository ufficiale di Varnish Cache.

Prima di tutto, devi abilitare il repository EPEL per installare diversi pacchetti 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 utilità utili che estendono le funzionalità native di yum in diversi 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 seguente.

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

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

[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 il cache locale di yum e installare il pacchetto di Varnish 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 
Install Varnish Cache in CentOS 7

8. Dopo aver installato Varnish Cache, l’eseguibile principale sarà installato come /usr/sbin/varnishd e i file di configurazione di Varnish si trovano in /etc/varnish/:

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

9. Ora avvia il servizio Varnish, abilitalo ad avviarsi automaticamente durante l’avvio del sistema e verifica il suo stato per assicurarti che sia in esecuzione come segue.

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish
Start Varnish Cache

10. Puoi confermare che l’installazione di Varnish è stata eseguita correttamente osservando la posizione dell’eseguibile di Varnish e la versione installata nel tuo sistema.

$ which varnishd
$ varnishd -V
Output di esempio
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

Passaggio 3: Configura Apache per lavorare con Varnish Cache

11. Configura ora Apache per lavorare in collaborazione con Varnish Cache. Di default, Apache ascolta sulla porta 80, devi cambiare la porta predefinita di HTTPD in 8080 – in questo modo HTTPD verrà eseguito dietro la cache di Varnish.

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

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

Nota: Inoltre, devi cambiare la porta nella configurazione del virtual host per ogni sito web che desideri servire tramite Varnish. Ecco la configurazione per il nostro sito di test (/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, aprire il file di configurazione di systemd di Varnish e trovare il parametro ExecStart che specifica la porta su cui Varnish ascolta, e cambiare il suo valore da 6081 a 80 come mostrato nello screenshot.

# systemctl edit --full  varnish

La configurazione dovrebbe apparire così una volta terminata.

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

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

# vi /etc/varnish/default.vcl 

Trovare la sezione backend e definire l’host IP e la porta. Di seguito è riportata la configurazione backend predefinita, impostare questo per puntare al proprio server di contenuti effettivo.

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

Se il proprio server backend è in esecuzione su un server diverso con indirizzo 10.42.1.10, allora 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 la cache di Varnish per rendere effettive le modifiche sopra indicate.

# systemctl daemon-reload
# systemctl restart httpd
# systemctl restart varnish

Passaggio 4: Test di Varnish Cache su Apache

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

# curl -I http://localhost
Output di esempio
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, consultare il repository di GitHub di Varnish Cache:

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

Source:
https://www.tecmint.com/install-varnish-cache-on-centos-7-for-apache/