Kako instalirati predmemoriju lakova 6 za Nginx na CentOS/RHEL 8


Varnish Cache (obično se naziva Varnish) je otvoreni izvor, moćan i brz obrnuto-proxy HTTP akcelerator s modernom arhitekturom i fleksibilnim jezikom za konfiguraciju. Biti obrnuti proxy jednostavno znači da je to softver koji možete rasporediti ispred svog web poslužitelja (koji je izvorni poslužitelj ili pozadina), poput Nginxa, da biste primali HTTP zahtjeve klijenata i prosljeđivali ih izvornom poslužitelju na obradu. I isporučuje odgovor s izvornog poslužitelja klijentima.

Lak djeluje kao posrednik između Nginxa i klijenata, ali s određenim prednostima u izvedbi. Njegova je glavna svrha brže učitavanje aplikacija radeći kao mehanizam za predmemoriranje. Prima zahtjeve klijenata i prosljeđuje ih na pozadinu da bi se predmemorirao traženi sadržaj (pohraniti datoteke i fragmenti datoteka u memoriju). Tada će se svi budući zahtjevi za točno sličnim sadržajem posluživati iz predmemorije.

To omogućuje brže učitavanje web aplikacija i neizravno poboljšava ukupne performanse web poslužitelja jer će Varnish posluživati sadržaj iz memorije umjesto Nginxovih datoteka za obradu s diska za pohranu.

Osim predmemoriranja, Varnish ima i nekoliko drugih slučajeva upotrebe, uključujući usmjerivač HTTP zahtjeva, uravnoteživač opterećenja, vatrozid web aplikacija i još mnogo toga.

Lak je konfiguriran korištenjem visoko proširivog ugrađenog jezika za konfiguriranje lakova (VCL) koji vam omogućuje pisanje pravila o načinu postupanja s dolaznim zahtjevima. Pomoću njega možete graditi prilagođena rješenja, pravila i module.

U ovom ćemo članku proći kroz korake za instalaciju Nginx web poslužitelja i Varnish Cache 6 na svježi CentOS 8 ili RHEL 8 poslužitelj. Korisnici RHEL 8 trebali bi biti sigurni da omogućuju pretplatu na redhat.

Da biste postavili kompletni LEMP stog, umjesto da sami instalirate Nginx web poslužitelj, pogledajte sljedeće vodiče.

  1. Kako instalirati LEMP poslužitelj na CentOS 8
  2. Kako instalirati LEMP poslužitelj na RHEL 8

Korak 1: Instalirajte Nginx web poslužitelj na CentOS/RHEL 8

1. CentOS/RHEL 8 isporučuje se s najnovijom verzijom softvera web poslužitelja Nginx, pa ćemo ga instalirati iz zadanog spremišta pomoću sljedećih dnf naredbi.

# dnf update
# dnf install nginx

2. Jednom kada je Nginx instaliran, morate pokrenuti, omogućiti i provjeriti status pomoću sljedećih naredbi systemctl.

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

3. Ako ste malo znatiželjni, možete provjeriti i Nginx TCP utičnicu koja se prema zadanim postavkama izvodi na portu 80, koristeći sljedeću ss naredbu.

# ss -tpln

4. Ako koristite vatrozid na sustavu, pobrinite se da ažurirate pravila vatrozida kako biste omogućili zahtjeve web serveru.

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

Korak 2: Instaliranje predmemorije lakova 6 na CentOS/RHEL 8

5. CentOS/RHEL 8 prema zadanim postavkama nudi DNF modul predmemorije laka koji sadrži verziju 6.0 LTS (dugotrajna podrška).

Da biste instalirali modul, pokrenite sljedeću naredbu.

# dnf module install varnish

6. Kada je instalacija modula dovršena, možete potvrditi verziju Varnish-a instaliranu na vašem sustavu.

# varnishd -V

7. Nakon instalacije Varnish Cache, glavna izvršna naredba instalirana pod/usr/sbin/varnishd i datoteke za konfiguraciju lakova nalaze se u/etc/varnish /.

Datoteka /etc/varnish/default.vcl glavna je datoteka za konfiguraciju lakova napisana pomoću VCL-a, a/etc/varnish/secret je tajna datoteka laka.

8. Zatim pokrenite uslugu Varnish, omogućite joj automatsko pokretanje tijekom pokretanja sustava i potvrdite da je pokrenuta.

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

Korak 3: Konfiguriranje Nginxa za rad s predmemorijom lakova

9. U ovom ćemo odjeljku pokazati kako konfigurirati predmemoriju lakova da se pokreće ispred Nginxa. Prema zadanim postavkama Nginx sluša na priključku 80, obično je svaki blok poslužitelja (ili virtualni domaćin) konfiguriran za preslušavanje na ovom priključku.

Na primjer, pogledajte zadani blok nginx poslužitelja konfiguriran u glavnoj konfiguracijskoj datoteci (/etc/nginx/nginx.conf).

# vi /etc/nginx/nginx.conf

Potražite odjeljak blok poslužitelja kao što je prikazano na sljedećem snimku zaslona.

10. Da biste pokrenuli Varnish ispred Nginxa, trebali biste promijeniti zadani Nginx port s 80 na 8080 (ili bilo koji drugi port po vašem izboru).

To bi trebalo učiniti u svim budućim konfiguracijskim datotekama bloka poslužitelja (obično kreiranih u /etc/nginx/conf.d/) za web mjesta ili web aplikacije koje želite posluživati putem Varnish-a.

Na primjer, blok poslužitelja za naše testno mjesto tecmint.lan je /etc/nginx/conf.d/tecmint.lan.conf i ima sljedeću konfiguraciju.

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 {
        }
}

Važno: Ne zaboravite onemogućiti zadani blok poslužitelja komentirajući njegov odjeljak za konfiguraciju u datoteci /etc/nginx/nginx.conf, kao što je prikazano na sljedećem snimku zaslona. To vam omogućuje pokretanje drugih web stranica/aplikacija na vašem poslužitelju, inače će Nginx uvijek usmjeriti zahtjeve na zadani blok poslužitelja.

11. Nakon dovršetka konfiguracije, provjerite ima li u pogrešci konfiguracijske datoteke i ponovno pokrenite Nginx uslugu kako biste primijenili nedavne promjene.

# nginx -t
# systemctl restart nginx

12. Dalje, da bismo primali HTTP zahtjeve od klijenata, moramo konfigurirati Varnish da se izvodi na portu 80. Za razliku od ranijih verzija Varnish Cache gdje je ta promjena izvršena u datoteci okoline Varnish (koja je sada zastarjela), u verziji 6.0 i iznad.

Moramo izvršiti potrebnu promjenu u datoteci usluge Lak. Pokrenite sljedeću naredbu da biste otvorili odgovarajuću servisnu datoteku za uređivanje.

# systemctl edit --full  varnish

Pronađite sljedeći redak i promijenite vrijednost prekidača -a , koji određuje adresu i port za preslušavanje. Postavite port na 80 kao što je prikazano na sljedećem snimku zaslona.

Imajte na umu da ako ne navedete adresu, varnishd će slušati na svim dostupnim sučeljima IPv4 i IPv6 aktivnim na poslužitelju.

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

Spremite promjene u datoteku i izađite.

13. Dalje, trebate definirati pozadinski poslužitelj koji će Varnish posjetiti kako bi dohvatio sadržaj. To se radi u glavnoj konfiguracijskoj datoteci Varnish.

# vi /etc/varnish/default.vcl 

Potražite odjeljak zadane konfiguracije pozadine i promijenite niz "default" u server1 (ili bilo koje ime po vašem izboru koje će predstavljati vaš izvorni poslužitelj). Zatim postavite port na 8080 (ili Nginx port za preslušavanje koji ste definirali u bloku poslužitelja).

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

U ovom vodiču pokrećemo Varnish i Nginx na istom poslužitelju. Ako je vaš Nginx web poslužitelj pokrenut na drugom hostu. Na primjer, drugi poslužitelj s adresom 10.42.0.247, a zatim postavite parametar .host kao što je prikazano.

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

Spremite datoteku i zatvorite je.

14. Dalje, trebate ponovo učitati konfiguraciju upravitelja systemd zbog nedavnih promjena u datoteci usluge laka, a zatim ponovo pokrenite uslugu laka da biste primijenili promjene kako slijedi.

# systemctl daemon-reload
# systemctl restart varnish

15. Sada potvrdite da Nginx i Varnish slušaju na konfiguriranim TCP utičnicama.

# ss -tpln

Korak 4: Testiranje postavljanja predmemorije Nginx laka

16. Zatim provjerite poslužuju li se web stranice putem predmemorije lakova kako slijedi. Otvorite web preglednik i krećite se koristeći IP poslužitelja ili FDQN kao što je prikazano na sljedećem snimku zaslona.

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

17. Ili upotrijebite naredbu curl kao što je prikazano. Upotrijebite IP adresu svog poslužitelja ili FQDN web stranice ili upotrijebite 127.0.0.1 ili localhost ako lokalno testirate.

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

Korisni uslužni programi za upravljanje predmemorijom lakova

18. U ovom posljednjem odjeljku ukratko ćemo opisati neke korisne korisne programe s kojima se isporučuje Varnish Cache, a koje možete koristiti za upravljanje varnishd, pristup zapisima u memoriji i ukupnoj statistici i još mnogo toga.

varnishadm uslužni program za kontrolu pokrenute instance Varnish-a. Uspostavlja CLI vezu s varnishd. Na primjer, možete ga koristiti za popis konfiguriranih pozadinskih datoteka kao što je prikazano na sljedećem snimku zaslona (za više informacija pročitajte man varnishadm).

# varnishadm
varnish> backend.list

Uslužni program varnishlog omogućuje pristup podacima specifičnim za zahtjev. Nudi informacije o određenim klijentima i zahtjevima (za više informacija pročitajte man varnish).

# varnishlog

Stat lak, poznat i kao statistika laka, koji vam daje pogled na trenutne performanse Varnika pružajući pristup statistikama u memoriji kao što su pogoci i promašaji predmemorije, podaci o pohrani, stvorene niti, izbrisani objekti (za više informacija pročitajte man varnishstat) .

# varnishstat 

Uslužni program varnish čita zapisnike zajedničke memorije i predstavlja kontinuirano ažurirani popis unosa dnevnika koji se najčešće pojavljuju (za više informacija pročitajte man varnishtop).

# varnishtop 

Uslužni program varnishhist (povijest lakova) raščlanjuje zapisnike lakova i daje kontinuirano ažurirani histogram koji prikazuje raspodjelu posljednjih n zahtjeva njihovom obradom (pročitajte man varnishhist za više informacija).

# varnishhist

To je sve! U ovom smo vodiču pokazali kako instalirati Varnish Cache i pokrenuti ga ispred Nginx HTTP poslužitelja kako bi se ubrzala isporuka web sadržaja u CentOS/RHEL 8.

Sve misli ili pitanja o ovom vodiču mogu se podijeliti pomoću obrasca za povratne informacije u nastavku. Za više informacija pročitajte dokumentaciju o Predmemoriji laka.

Glavni nedostatak predmemorije lakova je nedostatak izvorne podrške za HTTPS. Da biste omogućili HTTPS na svojoj web stranici/aplikaciji, morate konfigurirati SSL/TLS proxy za završetak da radi zajedno s predmemorijom lakova kako bi zaštitio vašu stranicu. U sljedećem ćemo članku pokazati kako omogućiti HTTPS za predmemoriju lakova pomoću Hitch-a na CentOS/RHEL 8.