Kako namestiti Varish Cache 6 za Nginx na CentOS/RHEL 8


Varnish Cache (običajno imenovan Varnish) je odprtokodni, zmogljiv in hiter povratno-proxy pospeševalnik HTTP s sodobno arhitekturo in prilagodljivim konfiguracijskim jezikom. Ker je obratni strežnik proxy, preprosto pomeni, da gre za programsko opremo, ki jo lahko namestite pred svoj spletni strežnik (ki je izvorni strežnik ali zaledje), kot je Nginx, da sprejema HTTP-zahteve strank in jih posreduje izvornemu strežniku v obdelavo. In odjemnikom posreduje odziv izvornega strežnika.

Lak deluje kot posrednik med Nginxom in strankami, vendar z nekaterimi prednostmi pri delovanju. Njegov glavni namen je pospešiti nalaganje aplikacij, tako da deluje kot predpomnilnik. Prejema zahteve odjemalcev in jih enkrat posreduje v ozadje, da predpomni zahtevano vsebino (shrani datoteke in fragmente datotek v pomnilnik). Potem bodo vse prihodnje zahteve za natančno podobno vsebino strežene iz predpomnilnika.

Tako se vaše spletne aplikacije nalagajo hitreje in posredno izboljšujejo celotno zmogljivost spletnega strežnika, ker bo Varnish namesto datotek za obdelavo Nginxa s pomnilniškega diska stregel vsebino iz pomnilnika.

Poleg predpomnjenja ima Varnish tudi več drugih primerov uporabe, vključno z usmerjevalnikom zahtev HTTP, izravnalnikom obremenitve, požarnim zidom spletnih aplikacij in še več.

Lak je konfiguriran z uporabo zelo razširljivega vgrajenega jezika za nastavitev laka (VCL), ki vam omogoča pisanje pravilnikov o ravnanju z dohodnimi zahtevami. Uporabite ga lahko za izdelavo prilagojenih rešitev, pravil in modulov.

V tem članku bomo preučili korake za namestitev spletnega strežnika Nginx in Varnish Cache 6 na svež strežnik CentOS 8 ali RHEL 8. Uporabniki RHEL 8 bi morali zagotoviti, da omogočijo naročnino na redhat.

Če želite namestiti celoten niz LEMP, namesto da namestite samo spletni strežnik Nginx, si oglejte naslednja navodila.

  1. Kako namestiti strežnik LEMP na CentOS 8
  2. Kako namestiti strežnik LEMP na RHEL 8

1. korak: Namestite spletni strežnik Nginx na CentOS/RHEL 8

1. CentOS/RHEL 8 je dobavljen z najnovejšo različico programske opreme spletnega strežnika Nginx, zato ga bomo namestili iz privzetega repozitorija z naslednjimi ukazi dnf.

# dnf update
# dnf install nginx

2. Ko je Nginx nameščen, morate z naslednjimi ukazi systemctl zagnati, omogočiti in preveriti stanje.

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

3. Če ste malo radovedni, lahko z naslednjim ukazom ss preverite tudi vtičnico Nginx TCP, ki se privzeto izvaja na vratih 80.

# ss -tpln

4. Če požarni zid uporabljate v sistemu, posodobite pravila požarnega zidu, da omogočite zahteve spletnemu strežniku.

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

2. korak: Namestitev predpomnilnika laka 6 na CentOS/RHEL 8

5. CentOS/RHEL 8 privzeto ponuja DNF modul Varnish Cache DNF, ki vsebuje različico 6.0 LTS (Long Term Support).

Če želite namestiti modul, zaženite naslednji ukaz.

# dnf module install varnish

6. Ko je namestitev modula končana, lahko potrdite različico Varnish-a, nameščenega v vašem sistemu.

# varnishd -V

7. Po namestitvi Varnish Cache se glavni izvršljivi ukaz, nameščen pod/usr/sbin/varnishd in datoteke za konfiguracijo laka, nahaja v/etc/varnish /.

Datoteka /etc/varnish/default.vcl je glavna datoteka za konfiguracijo laka, napisana z uporabo VCL in/etc/varnish/secret je skrivna datoteka laka.

8. Nato zaženite storitev Varnish, omogočite samodejni zagon med zagonom sistema in potrdite, da deluje in deluje.

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

3. korak: Konfiguriranje Nginxa za delo s predpomnilnikom lakov

9. V tem razdelku bomo prikazali, kako konfigurirati predpomnilnik lakov za zagon pred Nginxom. Nginx privzeto posluša na vratih 80, običajno je vsak strežniški blok (ali navidezni gostitelj) konfiguriran za poslušanje na teh vratih.

Oglejte si na primer privzeti blok strežnika nginx, konfiguriran v glavni konfiguracijski datoteki (/etc/nginx/nginx.conf).

# vi /etc/nginx/nginx.conf

Poiščite razdelek blokov strežnika, kot je prikazano na spodnji sliki zaslona.

10. Če želite zagnati Varnish pred Nginxom, spremenite privzeta vrata Nginx z 80 na 8080 (ali katera koli druga vrata po vaši izbiri).

To je treba storiti v vseh prihodnjih konfiguracijskih datotekah blokov strežnika (običajno ustvarjenih pod /etc/nginx/conf.d/) za spletna mesta ali spletne aplikacije, ki jih želite prikazovati prek Varnish.

Na primer, strežniški blok za naše testno spletno mesto tecmint.lan je /etc/nginx/conf.d/tecmint.lan.conf in ima naslednjo konfiguracijo.

server {
        listen       8080;
        server_name  www.tecmint.lan;
        root         /var/www/html/tecmint.lan/;
        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
}

Pomembno: Ne pozabite onemogočiti privzetega strežniškega bloka tako, da v datoteki /etc/nginx/nginx.conf komentirate njegov razdelek o konfiguraciji, kot je prikazano na naslednjem posnetku zaslona. To vam omogoča zagon drugih spletnih mest/aplikacij na vašem strežniku, sicer bo Nginx zahteve vedno usmeril v privzeti blok strežnika.

11. Ko je konfiguracija končana, preverite, ali je v konfiguracijski datoteki napake, in znova zaženite storitev Nginx, da uporabite nedavne spremembe.

# nginx -t
# systemctl restart nginx

12. Nato moramo za prejemanje zahtev HTTP od odjemalcev konfigurirati Varnish za zagon na vratih 80. Za razliko od prejšnjih različic Varnish Cache, kjer je bila ta sprememba narejena v datoteki okolja Varnish (ki je zdaj zastarela), v različici 6.0 in nad.

Zahtevano spremembo moramo narediti v datoteki storitve Varnish. Zaženite naslednji ukaz, da odprete ustrezno servisno datoteko za urejanje.

# systemctl edit --full  varnish

Poiščite naslednjo vrstico in spremenite vrednost stikala -a , ki določa naslov in vrata za poslušanje. Nastavite vrata na 80, kot je prikazano na naslednjem posnetku zaslona.

Če ne navedete naslova, bo varnishd poslušal vse razpoložljive vmesnike IPv4 in IPv6, ki so aktivni na strežniku.

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

Spremembe shranite v datoteko in zapustite.

13. Nato morate določiti zaledni strežnik, ki ga bo Varnish obiskal za pridobivanje vsebine. To se naredi v glavni konfiguracijski datoteki Varnish.

# vi /etc/varnish/default.vcl 

Poiščite privzeti konfiguracijski razdelek in spremenite niz\"privzeto" v server1 (ali katero koli ime po vaši izbiri, ki bo predstavljalo vaš izvorni strežnik). Nato vrata nastavite na 8080 (ali vrata za poslušanje Nginx, ki ste jih določili v bloku strežnika) .

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

V tem priročniku uporabljamo Varnish in Nginx na istem strežniku. Če vaš spletni strežnik Nginx deluje na drugem gostitelju. Na primer drug strežnik z naslovom 10.42.0.247, nato nastavite parameter .host , kot je prikazano.

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

Datoteko shranite in zaprite.

14. Nato morate znova naložiti konfiguracijo sistemskega upravitelja zaradi nedavnih sprememb v datoteki storitve Varnish, nato znova zaženite storitev Varnish, da uveljavite spremembe, kot sledi.

# systemctl daemon-reload
# systemctl restart varnish

15. Zdaj potrdite, da Nginx in Varnish poslušata konfigurirane vtičnice TCP.

# ss -tpln

4. korak: Testiranje nastavitve predpomnilnika Nginx Varnish Cache

16. Nato preverite, kako se spletne strani strežejo prek Varnish Cache, kot sledi. Odprite spletni brskalnik in krmarite s strežnikom IP ali FDQN, kot je prikazano na spodnji sliki zaslona.

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

17. Druga možnost je, da uporabite ukaz curl, kot je prikazano. Uporabite IP naslov strežnika ali FQDN spletnega mesta ali uporabite 127.0.0.1 ali localhost, če lokalno testirate.

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

Uporabni pripomočki za upravljanje predpomnilnika lakov

18. V tem zadnjem poglavju bomo na kratko opisali nekatere uporabne uporabne programe, s katerimi je priložen Varnish Cache, s katerimi lahko nadzorujete varnishd, dostopate do dnevnikov v pomnilniku, splošne statistike in še več.

varnishadm pripomoček za nadzor delujočega primerka Varnish. Vzpostavi povezavo CLI z varnishd. Na primer, lahko ga uporabite za seznam konfiguriranih zalednih datotek, kot je prikazano na naslednjem posnetku zaslona (za več informacij preberite man varnishadm).

# varnishadm
varnish> backend.list

Pripomoček varnishlog omogoča dostop do podatkov, specifičnih za zahteve. Ponuja informacije o določenih strankah in zahtevah (za več informacij preberite man varnishlog).

# varnishlog

Varnishstat, znan tudi kot statistika laka, ki vam omogoča pregled trenutne učinkovitosti Varnish-a z zagotavljanjem dostopa do statistik v pomnilniku, kot so zadetki in napake predpomnilnika, informacije o pomnilniku, ustvarjene niti, izbrisani predmeti (za več informacij preberite man varnishstat) .

# varnishstat 

Pripomoček varnishtop bere dnevnike skupnega pomnilnika in predstavlja stalno posodobljen seznam najpogostejših vnosov v dnevnik (za več informacij preberite man varnishtop).

# varnishtop 

Pripomoček varnishhist (zgodovina laka) razčleni dnevnike laka in prikaže stalno posodobljen histogram, ki prikazuje porazdelitev zadnjih n zahtev z njihovo obdelavo (za več informacij preberite man varnishhist).

# varnishhist

To je vse! V tem priročniku smo pokazali, kako namestiti Varnish Cache in ga zagnati pred strežnikom Nginx HTTP za pospešitev dostave spletne vsebine v CentOS/RHEL 8.

Vse misli ali vprašanja glede tega vodnika lahko delite s pomočjo spodnjega obrazca za povratne informacije. Za več informacij preberite dokumentacijo Varnish Cache.

Glavna pomanjkljivost Varnish Cache je pomanjkanje izvorne podpore za HTTPS. Če želite na svojem spletnem mestu/aplikaciji omogočiti HTTPS, morate konfigurirati proxy SSL/TLS za prekinitev, da deluje skupaj s predpomnilnikom lakov za zaščito vašega spletnega mesta. V naslednjem članku bomo pokazali, kako omogočiti HTTPS za predpomnilnik laka s pomočjo Hitch na CentOS/RHEL 8.