Com instal·lar Varnish Cache per a Apache a CentOS/RHEL 8


Varnish Cache és un accelerador gratuït d'aplicacions web de codi obert, modern i d'alt rendiment. És un servidor intermediari HTTP invers ràpid que emmagatzema contingut a la memòria cau per accelerar el rendiment del vostre servidor web, emmagatzemant contingut web a la memòria del servidor, en una memòria cau. Està configurat per executar-se davant d'un servidor d'origen com ara el servidor web Apache (HTTPD).

Quan un client sol·licita contingut, Varnish accepta la sol·licitud HTTP, envia la sol·licitud al servidor d'origen, guarda a la memòria cau els objectes retornats i respon a la sol·licitud del client. La propera vegada que el client sol·liciti el mateix contingut, Varnish el servirà des de la memòria cau. D'aquesta manera, redueix el temps de resposta i el consum d'ample de banda de la xarxa en futures sol·licituds equivalents.

Varnish també funciona com a encaminador de sol·licituds HTTP, tallafoc d'aplicacions web, equilibrador de càrrega i molt més. Es configura mitjançant el llenguatge flexible de configuració de vernís (VCL) que es pot extensible mitjançant mòduls de vernís (també coneguts com a VMOD), és compatible amb Edge Side Includes (ESL), compressió i descompressió Gzip i molt més.

En aquest article, aprendràs a instal·lar el servidor web Apache HTTPD i el Varnish Cache 6 en un nou servidor CentOS/RHEL 8, inclosa la configuració de Varnish perquè s'executi davant del servidor HTTPD.

  • Un servidor amb instal·lació de CentOS 8
  • Un servidor amb la subscripció a Red Hat activada al vostre sistema.

Pas 1: instal·lació del servidor web Apache a CentOS/RHEL 8

1. Comenceu per actualitzar tots els paquets de programari instal·lats al sistema de la manera següent mitjançant l'ordre DNF.

# dnf update

2. A continuació, executeu l'ordre següent per instal·lar el servidor web Apache HTTP des del dipòsit AppStream.

# dnf install httpd

3. Tan bon punt s'hagi completat la instal·lació, inicieu el servei httpd, activeu-lo perquè s'iniciï automàticament durant l'arrencada del sistema i comproveu-ne l'estat per confirmar que està en funcionament i utilitzant l'ordre systemctl.

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

4. Per defecte, CentOS/RHEL 8 inclou un tallafoc totalment bloquejat (executa firewall-cmd –state per confirmar). Heu d'obrir l'accés al servei HTTP al tallafoc per permetre als usuaris accedir a llocs web o aplicacions que s'executen mitjançant HTTP, i també recarregar la configuració del tallafoc per aplicar els nous canvis.

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

Pas 2: instal·lació de Varnish Cache 6.4 a CentOS/RHEL 8

5. Ara que el servidor web Apache s'està executant, podeu continuar per instal·lar Varnish Cache al sistema mitjançant l'ordre següent.

# dnf module install varnish

6. Després d'una instal·lació correcta, podeu verificar la versió de Varnish instal·lada al vostre sistema.

# varnishd -V

7. A continuació, l'executable principal s'instal·la com a /usr/sbin/varnishd. A més, els fitxers de configuració de Varnish s'emmagatzemen al directori /etc/varnish, on:

  • /etc/varnish/default.vcl: és el fitxer de configuració de vernís principal escrit amb VCL.
  • /etc/varnish/secret: és el fitxer secret de vernís.

8. Ara inicieu el servei de vernís, de moment, activeu-lo per iniciar-se automàticament durant l'arrencada del sistema en cas de reiniciar el servidor 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

Pas 3: Configuració d'Apache per treballar amb la memòria cau de Varnish

9. Ara és el moment de configurar la memòria cau de vernís perquè s'executi davant del servei Apache. Per defecte, el servidor Apache està configurat per escoltar al port 80, això es defineix al fitxer de configuració principal /etc/httpd/conf/httpd.conf.

Obriu-lo per editar-lo amb el vostre editor de text preferit.

# vi /etc/httpd/conf/httpd.conf

Busqueu el paràmetre Listen. Per executar Varnish davant del servidor Apache, hauríeu de canviar el port predeterminat 80 a 8080 (o qualsevol altre port que escolliu) tal com es mostra a la captura de pantalla següent.

Aquest port s'afegirà com a port del servidor de fons al fitxer de configuració de Varnish més endavant.

A més, la configuració de l'amfitrió virtual per a cada lloc web/aplicació que servirà mitjançant Varnish s'hauria de configurar per escoltar el port anterior. 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>

Important: per evitar que s'utilitzi mai la pàgina de prova del servidor HTTP per defecte d'Apache, comenteu totes les línies del fitxer /etc/httpd/conf.d/welcome.conf o simplement suprimiu el fitxer.

# rm /etc/httpd/conf.d/welcome.conf 

10. A continuació, proveu la sintaxi de configuració httpd per detectar qualsevol error. Si està bé, reinicieu el servei httpd per aplicar els nous canvis.

# httpd -t
# systemctl restart httpd

11. Per implementar Vernish davant HTTPD, només cal que el configureu per escoltar les sol·licituds dels clients al port HTTP predeterminat 80, tal com s'explica a continuació.

Tingueu en compte que a la memòria cau de Varnish 6.0 i superior, heu d'establir el servidor de vernís de port que escolta al fitxer de servei de Varnish per a systemd. Primer, obriu-lo per editar-lo.

# systemctl edit --full  varnish

Busqueu la línia ExecStart i, a continuació, canvieu el valor de l'interruptor -a (que especifica el vernís que escolta l'adreça i el port) de :6081 a :80 tal com s'indica a la captura de pantalla següent.

És important destacar que si no especifiqueu cap adreça, varnishd escoltarà a totes les interfícies IPv4 i IPv6 disponibles actives al servidor.

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

Deseu els canvis al fitxer i sortiu.

12. Ara, heu de configurar el servidor d'origen, conegut en terminologia de Varnish com a backend. És el servidor que entén HTTP, amb el qual parla Varnish, per obtenir contingut: httpd en aquest cas. Es configura al fitxer de configuració principal /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

Hi ha una secció de configuració del backend predeterminada anomenada per defecte. Podeu canviar \default a server1 (o qualsevol nom que trieu per complir els estàndards de l'entorn). Per defecte, el paràmetre de l'amfitrió apunta al localhost, en el supòsit que el servidor de fons s'està executant al localhost.

A continuació, configureu el port a 8080 (el port que heu definit al fitxer de configuració de l'amfitrió virtual d'Apache) tal com es mostra a la captura de pantalla.

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

Si el vostre servidor de fons s'executa en un amfitrió diferent, per exemple, un altre servidor 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";
}

Deseu el fitxer i tanqueu-lo.

13. Després de fer tots els canvis necessaris en relació amb el Vernish, torneu a carregar la configuració del gestor de sistema per reflectir els nous canvis al fitxer de servei de Varnish i també reinicieu el servei de Varnish per aplicar els canvis generals.

# systemctl daemon-reload
# systemctl restart varnish

14. En aquest punt, Varnish i Apache haurien d'estar escoltant al port 80 i 8080 respectivament. Podeu confirmar-ho mitjançant l'ordre socket statistics.

# ss -tpln

Pas 4: prova de la memòria cau de Varnish i la configuració d'Apache

14. Per provar la configuració de Varnish Cache-HTTPD, obriu un navegador web i navegueu amb l'IP del servidor o FQDN tal com es mostra a la captura de pantalla següent.

http://10.42.0.144
OR
http://www.tecmin.lan

A continuació, comproveu si les pàgines web es publiquen a través de la memòria cau de vernís de la manera següent. Comproveu les capçaleres HTTP fent clic amb el botó dret a la pàgina web que es mostra, seleccioneu Inspeccionar per obrir les eines per a desenvolupadors, després feu clic a la pestanya Xarxa i torneu a carregar la pàgina. A continuació, seleccioneu una sol·licitud per veure les capçaleres HTTP per confirmar-ho, tal com es mostra a la captura de pantalla següent.

Alternativament, podeu executar l'ordre curl següent per verificar-ho.

# curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan

Programes útils de la memòria cau de vernís

15. Acabem aquesta guia mirant alguns dels programes útils que inclou la distribució de la memòria cau del vernís. Inclouen utilitats per a l'administració de la memòria cau del vernís, la visualització de registres detallats i les estadístiques de rendiment del vernís tal com es descriu a continuació.

El primer és varnishadm que s'utilitza per administrar una instància de Varnish en execució. Estableix una connexió d'interfície de línia d'ordres amb varnishd. Pot afectar una instància en execució de Varnish iniciant i aturant varnishd, canviant els paràmetres de configuració, tornant a carregar la VCL, llistant backends i molt més.

# varnishadm
> backend.list

Per obtenir més informació, llegiu man varnishadm.

El següent programa és varnishlog que s'utilitza per accedir a dades específiques de la sol·licitud (és a dir, informació sobre clients i sol·licituds concrets). Proporciona grans quantitats d'informació, per la qual cosa normalment cal filtrar-la.

# varnishlog

Per a més informació, llegiu l'home vernishlog.

També tenim varnishstat (estadístiques de vernís) que s'utilitza per accedir a les estadístiques generals, com ara el nombre de sol·licituds totals, el nombre d'objectes i molt més.

# varnishstat

Per a més informació, llegiu l'home vernishstat.

A continuació, tenim varnishtop, una utilitat que llegeix el registre de vernís i presenta una llista actualitzada contínuament de les entrades de registre que es produeixen amb més freqüència.

# varnishtop 

Per a més informació, llegiu l'home vernishtop.

Una altra utilitat útil és la utilitat varnishhist (historial de vernís) que llegeix els registres de vernís i presenta un histograma actualitzat contínuament que mostra la distribució de les últimes N peticions pel seu processament.

# varnishhist

Per a més informació, llegiu l'home vernishhist.

Aquí ho tens! Heu implementat amb èxit Varnish Cache per accelerar el contingut de la vostra aplicació web que es publica amb Apache HTTP Server a CentOS/RHEL 8.

Si teniu alguna pregunta sobre aquest tema o idees per compartir, utilitzeu el formulari de comentaris que trobareu a continuació. Consulteu la documentació de Varnish Cache 6.0 per obtenir més informació.

Si voleu habilitar HTTPS al vostre lloc, consulteu el nostre següent article, que us mostrarà com habilitar SSL/TLS per a la memòria cau de vernís mitjançant Hitch a CentOS/RHEL 8.