Kako instalirati Varnish Cache za Apache na CentOS/RHEL 8


Varnish Cache je besplatan open source, moderan akcelerator web aplikacija visokih performansi. To je brzi reverzni HTTP proxy koji kešira sadržaj kako bi ubrzao performanse vašeg web servera, pohranjivanjem web sadržaja u memoriju servera – u keš memoriju. Konfiguriran je da radi ispred izvornog servera kao što je Apache (HTTPD) web server.

Kada klijent zatraži sadržaj, Varnish prihvata HTTP zahtjev, šalje zahtjev izvornom serveru, kešira vraćene objekte i odgovara na zahtjev klijenta. Sljedeći put kada klijent zatraži isti sadržaj, Varnish će ga poslužiti iz keša. Na ovaj način smanjuje vrijeme odgovora i potrošnju mrežnog propusnog opsega na buduće ekvivalentne zahtjeve.

Varnish također radi kao HTTP ruter zahtjeva, firewall za web aplikacije, balansator opterećenja i još mnogo toga. Konfigurira se pomoću fleksibilnog Jezika za konfiguraciju laka (VCL) koji je proširiv korištenjem Varnish modula (također poznatih kao VMOD-ovi >), podržava Edge Side Includes (ESL), Gzip kompresiju i dekompresiju i još mnogo toga.

U ovom članku ćete naučiti kako instalirati Apache HTTPD web server i Varnish Cache 6 na novi CentOS/RHEL 8 server, uključujući konfiguraciju Lakirajte za pokretanje ispred HTTPD servera.

Preduvjeti:

  • Server sa instalacijom CentOS 8
  • Server sa RHEL 8 instalacijom sa omogućenom Red Hat pretplatom na vašem sistemu.

Korak 1: Instaliranje Apache web servera na CentOS/RHEL 8

1. Počnite ažuriranjem svih instaliranih softverskih paketa na sistemu na sljedeći način koristeći DNF naredbu.

dnf update

2. Zatim pokrenite sljedeću naredbu da instalirate Apache HTTP web server iz AppStream spremišta.

dnf install httpd

3. Čim se instalacija završi, pokrenite httpd uslugu, omogućite joj da se automatski pokrene tokom pokretanja sistema i provjerite njen status da potvrdite da je pokrenut i radi, koristeći naredbu systemctl.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. Podrazumevano CentOS/RHEL 8 uključuje potpuno zaključan zaštitni zid (pokrenite firewall-cmd –state da potvrdite). Morate otvoriti pristup HTTP usluzi u zaštitnom zidu kako biste korisnicima omogućili pristup web lokacijama ili aplikacijama koje rade preko HTTP-a, kao i ponovo učitati postavke zaštitnog zida da biste primijenili nove promjene.

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

Korak 2: Instaliranje Varnish Cache 6.4 na CentOS/RHEL 8

5. Sada kada je Apache web server pokrenut, možete nastaviti dalje da instalirate Varnish Cache na sistem koristeći sljedeću naredbu.

dnf module install varnish

6. Nakon uspješne instalacije, možete provjeriti verziju Varnish-a instaliranog na vašem sistemu.

varnishd -V

7. Zatim se glavni izvršni fajl instalira kao /usr/sbin/varnishd. Također, Varnish konfiguracijske datoteke su pohranjene u /etc/varnish direktoriju, gdje:

  • /etc/varnish/default.vcl – glavni je konfiguracijski fajl laka napisan pomoću VCL-a.
  • /etc/varnish/secret – je tajna datoteka laka.

8. Sada pokrenite uslugu lakiranja, za sada omogućite njeno automatsko pokretanje tokom pokretanja sistema u slučaju ponovnog pokretanja servera i provjerite njegov status kako biste bili sigurni da radi i radi na sljedeći način.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Korak 3: Konfigurisanje Apache-a za rad sa Varnish Cache-om

9. Sada je vrijeme da konfigurirate Varnish Cache da radi ispred Apache servisa. Apache server je po defaultu konfiguriran da sluša na portu 80, ovo je definirano u glavnoj konfiguracijskoj datoteci /etc/httpd/conf/httpd.conf.

Otvorite ga za uređivanje pomoću vašeg omiljenog uređivača teksta.

vi /etc/httpd/conf/httpd.conf

Potražite parametar Slušaj. Da pokrenete Varnish ispred Apache servera, trebali biste promijeniti zadani port 80 u 8080 (ili bilo koji drugi port po vašem izboru) kao prikazano na sledećem snimku ekrana.

Ovaj port će kasnije biti dodan kao port pozadinskog servera u Varnish konfiguracionoj datoteci.

Također, konfiguracija virtuelnog hosta za svaku web stranicu/aplikaciju koja će služiti putem Varnish-a treba biti konfigurirana da sluša gornji port. Evo konfiguracije za našu test stranicu (/etc/httpd/conf.d/tecmint.lan.conf).

<VirtualHost *:8080>
    DocumentRoot "/var/www/html/tecmint.lan/"
    ServerName www.tecmint.lan
    # Other directives here
</VirtualHost>

Važno: Da spriječite da se zadana stranica za testiranje HTTP servera Apache ikada koristi, komentirajte sve redove u datoteci /etc/httpd/conf.d /welcome.conf ili jednostavno izbrišite datoteku.

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

10. Zatim testirajte httpd konfiguracijsku sintaksu za bilo kakve greške. Ako je u redu, ponovo pokrenite httpd uslugu da primijenite nove promjene.

httpd -t
systemctl restart httpd

Konfiguriranje Varnish-a za Systemd

11. Da biste postavili Varnish ispred HTTPD-a, jednostavno ga trebate konfigurirati da sluša zahtjeve klijenata na zadanom HTTP portu 80 kao što je objašnjeno ispod.

Imajte na umu da u lakiranjem 6,0 i viši, morate postaviti port lakirski poslužitelj slušati u lakirnoj usluzi za Systemd . Prvo otvorite ga za uređivanje.

systemctl edit --full  varnish

Potražite execstart liniju, a zatim promijenite vrijednost -a prekidač (što precizira lak slušanje adrese i porta) iz : 6081 do :80 kao što je prikazano na sljedećem snimku ekrana.

Važno je da ako ne navedete adresu, varnishd će slušati na svim dostupnim IPv4 i IPv6 interfejsima aktivnim na serveru.

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

Sačuvajte promene u datoteci i izađite.

Konfiguriranje Varnish Backend servera koristeći VCL

12. Sada morate konfigurirati izvorni server, poznat u Varnish terminologiji kao pozadinski. To je server koji razumije HTTP, s kojim Varnish razgovara, da bi dohvatio sadržaj – u ovom slučaju httpd. Konfiguriše se u glavnoj konfiguracionoj datoteci /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Postoji zadani pozadinski odjeljak konfiguracije koji se zove default. Možete promijeniti “podrazumevano ” u server1 (ili bilo koje ime po vašem izboru kako biste zadovoljili standarde vašeg okruženja). Podrazumevano, parametar host ukazuje na localhost, pod pretpostavkom da pozadinski server radi na lokalnom hostu.

Zatim postavite port na 8080 (port koji ste definisali u konfiguracionoj datoteci virtuelnog hosta Apache) kao što je prikazano na snimku ekrana.

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

Ako vaš pozadinski server radi na drugom hostu, na primjer, na drugom serveru s adresom 10.42.1.10, tada bi parametar host trebao ukazivati na ovu IP adresu.

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

Sačuvajte datoteku i zatvorite je.

13. Nakon što izvršite sve potrebne promjene u vezi s Lakom, ponovo učitajte systemd konfiguraciju upravitelja da odražava nove promjene u datoteci usluge Varnish i također ponovo pokrenite uslugu lakiranja za primjenu ukupnih promjena.

systemctl daemon-reload
systemctl restart varnish

14. U ovom trenutku, Varnish i Apache bi sada trebali slušati na portu 80 i 8080 respektivno. Ovo možete potvrditi pomoću komande statistike socketa.

ss -tpln

Korak 4: Testiranje Varnish keša i Apache podešavanja

14. Za testiranje podešavanja Varnish Cache-HTTPD, otvorite web preglednik i navigirajte koristeći IP ili FQDN servera kao što je prikazano na sljedećem snimku ekrana.

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

Zatim provjerite da li se web stranice poslužuju putem Varnish Cache na sljedeći način. Provjerite HTTP zaglavlja desnim klikom na prikazanu web stranicu, odaberite Inspect da otvorite alate za programere, zatim kliknite karticu Mreža i Ponovo učitajte stranicu. Zatim odaberite zahtjev za pregled HTTP zaglavlja kako biste to potvrdili kao što je prikazano na sljedećem snimku ekrana.

Alternativno, možete pokrenuti sljedeću naredbu curl da biste je potvrdili.

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

Korisni uslužni programi za keširanje laka

15. Završimo ovaj vodič tako što ćemo pogledati neke od korisnih programa s kojima dolazi distribucija Varnish Cache. Oni uključuju uslužne programe za administraciju keša lakova, prikazivanje detaljnih zapisa dnevnika i pregled statistike performansi laka kao što je opisano u nastavku.

varnishadm

Prvi je varnishadm koji se koristi za administriranje pokrenute instance Varnish. Uspostavlja vezu sa interfejsom komandne linije sa varnishd. Može uticati na pokrenutu instancu Varnish-a pokretanjem i zaustavljanjem varnishd, promjenom konfiguracijskih parametara, ponovnim učitavanjem VCL-a, navođenjem pozadine i još mnogo toga.

varnishadm
> backend.list

Za više informacija pročitajte man varnishadm.

lak

Sljedeći program je varnishlog koji se koristi za pristup podacima specifičnim za zahtjev (tj. informacijama o određenim klijentima i zahtjevima). Pruža velike količine informacija, pa ih je obično potrebno filtrirati.

varnishlog

Za više informacija, pročitajte log man lakiranja.

laksstat

Također imamo varnishstat (varnish statistiku) koji se koristi za pristup cjelokupnoj statistici kao što je broj ukupnih zahtjeva, broj objekata i još mnogo toga.

varnishstat

Za više informacija, pročitajte man lakirstat.

lak

Zatim imamo varnishtop koji je uslužni program koji čita dnevnik Varnish i predstavlja kontinuirano ažuriranu listu unosa dnevnika koji se najčešće pojavljuju.

varnishtop 

Za više informacija pročitajte man lak.

lakir

Još jedan koristan uslužni program je varnishhist (istorija laka) koji čita Varnish dnevnike i predstavlja kontinuirano ažurirani histogram koji prikazuje distribuciju zadnjih N zahtjeva prema njihovim obrada.

varnishhist

Za više informacija pročitajte muški lakir.

Evo ga! Uspješno ste postavili Varnish Cache da ubrzate sadržaj vaše web aplikacije koji se servira pomoću Apache HTTP servera na CentOS/RHEL 8.

Ako imate bilo kakvih pitanja o ovoj temi ili razmišljanja koje biste mogli podijeliti, koristite obrazac za povratne informacije u nastavku. Za više informacija pogledajte dokumentaciju Varnish Cache 6.0.

Ako želite da omogućite HTTPS na svojoj web lokaciji, pogledajte naš sljedeći članak, koji će pokazati kako omogućiti SSL/TLS za Varnish Cache koristeći Hitch na CentOS/RHEL 8.