Kako instalirati Varnish Cache 5.2 za Nginx na CentOS 7


Varnish Cache (poznat i kao Varnish) je HTTP akcelerator otvorenog koda visokih performansi dizajniran za ubrzavanje web poslužitelja. U našim prošlim člancima objasnili smo kako postaviti Varnish Cache za Apache na CentOS 7 i CentOS 8.

U ovom ćemo vam članku pokazati kako instalirati i koristiti Varnish Cache kao front-end za Nginx HTTP poslužitelj u CentOS 7. Ovaj bi vodič trebao raditi i na RHEL 7.

Zahtjevi

  1. CentOS 7 s instaliranim Apacheom
  2. CentOS 7 sa statičkom IP adresom

Korak 1: Instalirajte Nginx web poslužitelj na CentOS 7

1. Započnite instaliranjem Nginx HTTP poslužitelja iz zadanih repozitorija softvera CentOS pomoću upravitelja paketa YUM na sljedeći način.

yum install nginx

2. Kada instalacija završi, pokrenite uslugu Nginx za sada i omogućite joj da se automatski pokrene prilikom pokretanja sustava.

systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Sada promijenite pravila vatrozida sustava kako biste dopustili ulazne pakete na priključku 80 pomoću donjih naredbi.

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

Korak 2: Instalirajte Varnish Cache na CentOS 7

4. Sada postoje unaprijed kompajlirani RPM paketi za najnoviju verziju Varnish Cache 6 (tj. 6.5 u vrijeme pisanja), stoga trebate dodati službeno Varnish Cache spremište.

Prije toga morate omogućiti EPEL repozitorij za instaliranje nekoliko paketa ovisnosti kao što je prikazano.

yum install -y epel-release

5. Zatim instalirajte pygpgme, paket za rukovanje GPG potpisima i yum-utils, zbirku korisnih uslužnih programa koji na različite načine proširuju izvorne značajke yum-a.

yum install pygpgme yum-utils

6. Sada stvorite datoteku pod nazivom /etc/yum.repos.d/varnishcache_varnish5.repo koja sadrži konfiguraciju repozitorija u nastavku.

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

Važno: Obavezno zamijenite el i 7 u donjoj konfiguraciji sa svojom distribucijom i verzijom Linuxa:

[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. Sada pokrenite naredbu ispod da ažurirate svoju lokalnu yum predmemoriju i instalirate paket varnish cache (ne zaboravite prihvatiti GPG ključ upisivanjem y ili yes dok instalirate paket):

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

8. Nakon instaliranja Varnish Cache, glavna izvršna datoteka bit će instalirana kao /usr/sbin/varnishd, a konfiguracijske datoteke varnish-a nalaze se u /etc/varnish/:

  • /etc/varnish/default.vcl – ovo je glavna varnish konfiguracijska datoteka, napisana je korištenjem vanish konfiguracijskog jezika (VCL).

9. Sada pokrenite uslugu lakiranja, omogućite joj automatsko pokretanje tijekom dizanja sustava i provjerite njen status kako biste bili sigurni da radi i radi kako slijedi.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

10. Možete potvrditi da je Varnish instalacija bila uspješna tako da vidite lokaciju izvršne Varnish datoteke i verzije instalirane na vašem sustavu.

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

Korak 3: Konfigurirajte Nginx za rad s Varnish Cacheom

11. U ovom koraku trebate konfigurirati Nginx za rad s Varnish Cacheom. Prema zadanim postavkama Nginx sluša na portu 80, trebali biste promijeniti zadani port Nginxa na 8080 tako da radi iza Varnish predmemoriranja.

Otvorite Nginx konfiguracijsku datoteku /etc/nginx/nginx.conf i pronađite red listen 80 i promijenite ga u listen 8080 kao na poslužitelju blok prikazan na slici ispod.

vi /etc/nginx/nginx.conf

Napomena: Ovo treba učiniti u svim konfiguracijskim datotekama bloka poslužitelja (obično stvorenim pod /etc/nginx/conf.d/) za web stranice koje želite posluživati putem lakiranje.

12. Zatim otvorite konfiguracijsku datoteku usluge varnish i pronađite parametar ExecStart koji navodi port koji Varnish sluša i promijenite njegovu vrijednost s 6081 do 80.

systemctl edit --full  varnish

Linija bi trebala izgledati kao što je prikazano.

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

13. Zatim postavite Nginx kao pozadinski poslužitelj za Varnish proxy, u konfiguracijskoj datoteci /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Pronađite odjeljak backend i definirajte IP i port glavnog računala. Ispod je zadana pozadinska konfiguracija, postavite je da pokazuje na vaš stvarni poslužitelj sadržaja.

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

14. Nakon izvođenja svih potrebnih konfiguracija, ponovno pokrenite Nginx HTTPD i Varnish cache kako biste izvršili gore navedene promjene.

systemctl daemon-reload
systemctl restart nginx
systemctl restart varnish

Korak 4: Testirajte Varnish Cache na Nginxu

15. Konačno, provjerite je li Varnish cache omogućen i radi li s uslugom Nginx pomoću naredbe cURL u nastavku za pregled HTTP zaglavlja.

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

Dodatne informacije možete pronaći u Github repozitoriju Varnish Cache: https://github.com/varnishcache/varnish-cache

U ovom vodiču objasnili smo kako postaviti Varnish Cache za Nginx HTTP poslužitelj na CentOS 7. Upotrijebite obrazac za komentare u nastavku da nam pošaljete bilo kakve upite ili dodatne ideje.