Cum se instalează Varnish Cache 5.2 pentru Nginx pe CentOS 7


Varnish Cache (numit și Varnish) este un accelerator HTTP de înaltă performanță, open source, conceput pentru a accelera serverele web. În ultimele noastre articole, am explicat cum să configurați Varnish Cache pentru Apache pe CentOS 7 și CentOS 8.

În acest articol, vă vom arăta cum să instalați și să utilizați Varnish Cache ca front-end pentru serverul HTTP Nginx în CentOS 7. Acest ghid ar trebui să funcționeze și pe RHEL 7.

Cerințe

  1. Un CentOS 7 cu Apache instalat
  2. Un CentOS 7 cu o adresă IP statică

Pasul 1: Instalați serverul web Nginx pe CentOS 7

1. Începeți prin a instala serverul Nginx HTTP din depozitele implicite de software CentOS utilizând managerul de pachete YUM, după cum urmează.

yum install nginx

2. Când instalarea se termină, porniți serviciul Nginx pentru moment și activați-l să pornească automat la pornirea sistemului.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Acum modificați regulile de firewall de sistem pentru a permite pachetele de intrare pe portul 80 folosind comenzile de mai jos.

firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload

Pasul 2: Instalați Varnish Cache pe CentOS 7

4. Acum există pachete RPM precompilate pentru cea mai recentă versiune a Varnish Cache 6 (adică 6.5 la momentul scrierii), prin urmare trebuie să adăugați depozitul oficial Varnish Cache.

Înainte de aceasta, trebuie să activați depozitul EPEL pentru a instala mai multe pachete de dependență, așa cum se arată.

yum install -y epel-release

5. Apoi, instalați pygpgme, un pachet pentru gestionarea semnăturilor GPG și yum-utils, o colecție de utilitare utile care extind funcțiile native ale lui yum în diferite moduri.

yum install pygpgme yum-utils

6. Acum creați un fișier denumit /etc/yum.repos.d/varnishcache_varnish5.repo care conține configurația depozitului de mai jos.

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

Important: asigurați-vă că înlocuiți el și 7 în configurația de mai jos cu distribuția și versiunea dvs. 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. Acum rulați comanda de mai jos pentru a vă actualiza memoria cache locală yum și a instala pachetul de cache pentru varnish (nu uitați să acceptați cheia GPG tastând y sau yes în timpul instalării pachetului):

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

8. După instalarea Varnish Cache, executabilul principal va fi instalat ca /usr/sbin/varnishd, iar fișierele de configurare a vernisului se află în >:

  • /etc/varnish/default.vcl – acesta este fișierul principal de configurare a lacului, este scris folosind limbajul de configurare vanish (VCL).

9. Acum porniți serviciul de lac, permiteți-l să pornească automat în timpul pornirii sistemului și verificați starea acestuia pentru a vă asigura că este pornit și rulează, după cum urmează.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

10. Puteți confirma că instalarea Varnish a avut succes, văzând locația executabilului Varnish și versiunea instalată pe sistemul dvs.

which varnishd
varnishd -V
Ieșire eșantion
varnishd (varnish-6.5.1 revision 1dae23376bb5ea7a6b8e9e4b9ed95cdc9469fb64)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2020 Varnish Software

Pasul 3: Configurați Nginx să funcționeze cu Varnish Cache

11. În acest pas, trebuie să configurați Nginx să funcționeze cu Varnish Cache. În mod implicit, Nginx ascultă pe portul 80, ar trebui să schimbați portul Nginx implicit la 8080, astfel încât să ruleze în spatele memoriei cache Varnish.

Deschideți fișierul de configurare Nginx /etc/nginx/nginx.conf și găsiți linia listen 80 și schimbați-o pentru a asculta 8080 ca în server bloc afișat în captura de ecran de mai jos.

vi /etc/nginx/nginx.conf

Notă: acest lucru ar trebui făcut în toate fișierele de configurare a blocurilor de server (create de obicei sub /etc/nginx/conf.d/) pentru site-urile web pe care doriți să le difuzați prin >Lac.

12. Apoi, deschideți fișierul de configurare a serviciului de lac și găsiți parametrul ExecStart care specifică portul pe care îl ascultă Varnish și modificați-i valoarea de la 6081 până la 80.

systemctl edit --full  varnish

Linia ar trebui să arate așa cum se arată.

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

13. Apoi, configurați Nginx ca server backend pentru proxy Varnish, în fișierul de configurare /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Găsiți secțiunea backend și definiți IP-ul și portul gazdei. Mai jos este configurația backend implicită, setați-o să trimită către serverul dvs. de conținut real.

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

14. După efectuarea tuturor configurațiilor necesare, reporniți Nginx HTTPD și cacheul Varnish pentru a efectua modificările de mai sus.

systemctl daemon-reload
systemctl restart nginx
systemctl restart varnish

Pasul 4: Testați cacheul Varnish pe Nginx

15. În cele din urmă, testați dacă cacheul Varnish este activat și lucrează cu serviciul Nginx folosind comanda cURL de mai jos pentru a vedea antetul HTTP.

curl -I http://localhost
Ieșire eșantion
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

Puteți găsi informații suplimentare din depozitul Varnish Cache Github: https://github.com/varnishcache/varnish-cache

În acest tutorial, am explicat cum să configurați Varnish Cache pentru serverul HTTP Nginx pe CentOS 7. Folosiți formularul de comentarii de mai jos pentru a ne trimite orice întrebări sau idei suplimentare.