Instal·leu Varnish Cache 5.2 per augmentar el rendiment d'Apache a CentOS 7


Varnish Cache (conegut comunament com a Varnish), és un popular accelerador HTTP de proxy invers de codi obert destinat a accelerar els servidors web. Està dissenyat per a punts finals d'API excessivament utilitzats i també per a llocs dinàmics que ofereixen contingut massiu i experimenten un gran trànsit.

Bàsicament ajuda a reduir la càrrega de la CPU; admet l'equilibri de càrrega als servidors web i permet que un navegador web carregui ràpidament llocs com a resultat d'emmagatzemar la memòria cau a la memòria RAM. Una sèrie de grans empreses l'utilitzen, com ara Facebook, Twitter i Viquipèdia, només per esmentar-ne algunes.

  1. Un CentOS 7 amb Apache instal·lat
  2. Un CentOS 7 amb una adreça IP estàtica

En aquest article, explicaré com instal·lar i utilitzar Varnish Cache 6.5 com a interfície d'un servidor web Apache a CentOS 7 (també funciona a RHEL 7).

Pas 1: instal·leu el servidor web Apache a CentOS 7

1. Instal·leu primer el servidor HTTP Apache des dels dipòsits de programari per defecte de CentOS mitjançant el gestor de paquets YUM de la següent manera.

# yum install httpd

2. Un cop instal·lat Apache, engegueu-lo de moment i activeu-lo perquè s'iniciï automàticament a l'arrencada del sistema.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd

3. A continuació, actualitzeu les regles del tallafoc del sistema per permetre els paquets entrants al port 80 mitjançant les ordres següents.

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

Pas 2: instal·leu Varnish Cache a CentOS 7

4. Ara hi ha paquets RPM precompilats per a la darrera versió de Varnish Cache 6 (és a dir, 6.5 en el moment d'escriure), per tant, heu d'afegir el dipòsit oficial de Varnish Cache.

Abans d'això, heu d'habilitar el repositori EPEL per instal·lar diversos paquets de dependències tal com es mostra.

# yum install -y epel-release

5. A continuació, instal·leu pygpgme, un paquet per gestionar signatures GPG i yum-utils, una col·lecció d'utilitats útils que amplien les funcions natives de yum de diverses maneres.

# yum install pygpgme yum-utils

6. Ara creeu un fitxer anomenat /etc/yum.repos.d/varnishcache_varnish65.repo que contingui la configuració del dipòsit a continuació.

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

Important: Assegureu-vos de substituir el i 7 a la configuració següent amb la vostra distribució i versió de 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. Ara executeu l'ordre següent per actualitzar la vostra memòria cau yum local i instal·lar el paquet de la memòria cau de vernís (no oblideu acceptar la clau GPG escrivint y o mentre instal·leu el paquet):

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

8. Després d'instal·lar Varnish Cache, l'executable principal s'instal·larà com a /usr/sbin/varnishd i els fitxers de configuració de vernish es troben a /etc/varnish/:

  • /etc/varnish/default.vcl: aquest és el fitxer de configuració de vernís principal, està escrit amb el llenguatge de configuració de vanish (VCL).

9. Ara inicieu el servei de vernís, activeu-lo perquè s'iniciï automàticament durant l'arrencada del sistema i comproveu-ne l'estat per assegurar-vos que estigui en funcionament de la manera següent.

# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish

10. Podeu confirmar que la instal·lació de Varnish ha estat correcta si vegeu la ubicació de l'executable de Varnish i la versió instal·lada al vostre sistema.

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

Pas 3: configureu Apache per treballar amb la memòria cau de vernís

11. Ara configureu l'Apache perquè funcioni conjuntament amb la memòria cau del vernís. De manera predeterminada, Apache escolta al port 80, heu de canviar el port HTTPD predeterminat a 8080; això garantirà que HTTPD s'executi darrere de la memòria cau de Varnish.

Podeu utilitzar l'ordre sed per canviar el port 80 al 8080 tal com es mostra.

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

Nota: A més, heu de canviar el port de la configuració de l'amfitrió virtual per a cada lloc web que vulgueu servir mitjançant Varnish. Aquí teniu la configuració del nostre lloc de 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. A continuació, obriu el fitxer de configuració del vernish systemd i cerqueu el paràmetre ExecStart que especifica el port on escolta Varnish i canvieu-ne el valor de 6081 a 80 tal com es mostra a la captura de pantalla.

# systemctl edit --full  varnish

La configuració hauria de tenir aquest aspecte quan hagi acabat.

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

13. A continuació, configureu Apache com a servidor de fons per al servidor intermediari de Varnish, al fitxer de configuració /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

Cerqueu la secció de backend i definiu l'IP i el port de l'amfitrió. A continuació es mostra la configuració del backend predeterminada, configureu-la perquè apunti al vostre servidor de contingut real.

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

Si el vostre servidor de fons s'executa en un servidor diferent amb l'adreça 10.42.1.10, el paràmetre de l'amfitrió hauria d'apuntar a aquesta adreça IP.

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

14. Després d'haver realitzat totes les configuracions necessàries, reinicieu la memòria cau d'HTTPD i de Varnish per efectuar els canvis anteriors.

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

Pas 4: prova la memòria cau de vernís a Apache

15. Finalment, comproveu si Varnish està habilitat i funciona amb el servei HTTPD mitjançant l'ordre cURL següent, que es pot utilitzar per veure la capçalera HTTP.

# curl -I http://localhost
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 obtenir més informació, consulteu el repositori Github de Varnish Cache: https://github.com/varnishcache/varnish-cache

En aquest tutorial, vam explicar com configurar el servidor intermediari de Varnish Cache 6.5 per al servidor HTTP Apache a CentOS 7. En cas que tingueu alguna consulta o idees addicionals per compartir, utilitzeu el formulari de comentaris següent per escriure'ns.