Com instal·lar Varnish Cache 5.2 per a Nginx a CentOS 7


Varnish Cache (també conegut com a Varnish) és un accelerador HTTP d'alt rendiment de codi obert dissenyat per accelerar els servidors web. En els nostres últims articles, hem explicat com configurar CentOS 8.

En aquest article, us mostrarem com instal·lar i utilitzar Varnish Cache com a interfície del servidor HTTP Nginx a CentOS 7. Aquesta guia també hauria de funcionar a RHEL 7.

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

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

1. Comenceu instal·lant el servidor HTTP Nginx des dels dipòsits de programari CentOS predeterminats mitjançant el gestor de paquets YUM de la següent manera.

# yum install nginx

2. Quan finalitzi la instal·lació, inicieu el servei Nginx de moment i activeu-lo perquè s'iniciï automàticament a l'arrencada del sistema.

# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

3. Ara modifiqueu 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-port=80/tcp
# firewall-cmd --reload
# firewall-cmd --zone=public --permanent --add-port=8080/tcp
# 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_varnish5.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ó 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 Nginx perquè funcioni amb la memòria cau de vernís

11. En aquest pas, heu de configurar Nginx perquè funcioni amb la memòria cau de vernís. Per defecte, Nginx escolta al port 80, hauríeu de canviar el port predeterminat de Nginx a 8080 perquè s'executi darrere de la memòria cau de Varnish.

Obriu el fitxer de configuració de Nginx /etc/nginx/nginx.conf i cerqueu la línia listen 80 i canvieu-la per listen 8080 com al bloc del servidor que es mostra a la captura de pantalla següent.

# vi /etc/nginx/nginx.conf

Nota: Això s'ha de fer a tots els fitxers de configuració de blocs de servidor (generalment creats a /etc/nginx/conf.d/) per als llocs web que voleu servir mitjançant Varnish.

12. A continuació, obriu el fitxer de configuració del servei de vernís i cerqueu el paràmetre ExecStart que especifica el port en què el vernís escolta i canvieu-ne el valor de 6081 a 80.

# systemctl edit --full  varnish

La línia hauria de semblar com es mostra.

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

13. A continuació, configureu Nginx 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";
}

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

# systemctl daemon-reload
# systemctl restart nginx
# systemctl restart varnish

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

15. Finalment, comproveu si la memòria cau de Varnish està habilitat i funciona amb el servei Nginx mitjançant l'ordre cURL següent per veure la capçalera HTTP.

# curl -I http://localhost
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

Podeu trobar informació addicional al Repositori de Github de Varnish Cache: https://github.com/varnishcache/varnish-cache

En aquest tutorial, vam explicar com configurar la memòria cau de vernís per al servidor HTTP Nginx a CentOS 7. Utilitzeu el formulari de comentaris següent per enviar-nos qualsevol consulta o idea addicional.