Instalirajte Varnish Cache 5.2 da poboljšate Apache performanse na CentOS 7


Varnish Cache (poznatiji kao Varnish), je open-source, popularni reverse-proxy HTTP akcelerator namijenjen za ubrzavanje web servera. Dizajniran je za prekomjerno iskorištene API krajnje tačke, kao i za dinamičke stranice koje služe masovnom sadržaju i imaju veliki promet.

U osnovi pomaže da se smanji CPU opterećenje; podržava balansiranje opterećenja na web serverima i omogućava web pretraživaču da brzo učitava stranice kao rezultat pohranjivanja keša u RAM. Brojne velike kompanije ga koriste uključujući Facebook, Twitter i Wikipedia da spomenemo samo neke.

Zahtjevi

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

U ovom članku ću objasniti kako instalirati i koristiti Varnish Cache 6.5 kao front-end za Apache web server u CentOS 7 ( također radi na RHEL 7).

Korak 1: Instalirajte Apache web server na CentOS 7

1. Prvo instalirajte Apache HTTP server iz podrazumevanih CentOS softverskih riznica koristeći YUM menadžer paketa na sledeći način.

yum install httpd

2. Nakon što se Apache instalira, pokrenite ga za sada i omogućite mu da se automatski pokreće pri pokretanju sistema.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

3. Sljedeće ažuriranje pravila zaštitnog zida sistema kako bi se dozvolili ulazni paketi na portu 80 koristeći naredbe ispod.

firewall-cmd --zone=public --permanent --add-service=http
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 morate dodati službeno Varnish Cache spremište.

Prije toga, morate omogućiti EPEL spremište da instalira nekoliko paketa ovisnosti kao što je prikazano.

yum install -y epel-release

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

yum install pygpgme yum-utils

6. Sada kreirajte datoteku pod nazivom /etc/yum.repos.d/varnishcache_varnish65.repo koja sadrži konfiguraciju spremišta ispod.

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

Važno: Zamijenite el i 7 u konfiguraciji ispod 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 svoj lokalni yum keš i instalirate paket keš memorije (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, glavni izvršni fajl će biti instaliran kao /usr/sbin/varnishd, a datoteke za konfiguraciju laka se nalaze u >/etc/lak/:

  • /etc/varnish/default.vcl – ovo je glavna konfiguraciona datoteka lakiranja, napisana je koristeći vanish konfiguracijski jezik (VCL).

9. Sada pokrenite uslugu lakiranja, omogućite joj da se automatski pokrene tokom pokretanja sistema i provjerite njen status kako biste bili sigurni da je pokrenut i radi na sljedeći način.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

10. Možete potvrditi da je Varnish instalacija bila uspješna tako što ćete vidjeti lokaciju Varnish izvršne datoteke i verziju instaliranu na vašem sistemu.

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

Korak 3: Konfigurišite Apache da radi sa Varnish Cache

11. Sada konfigurirajte Apache da radi u sprezi sa Varnish Cache. Prema zadanim postavkama Apache sluša na portu 80, morate promijeniti zadani HTTPD port u 8080 – ovo će osigurati da HTTPD radi iza Varnish keširanja.

Možete koristiti naredbu sed da promijenite port 80 u 8080 kao što je prikazano.

sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf

Napomena: Također, morate promijeniti port na konfiguraciji virtuelnog hosta za svaku web stranicu koju želite poslužiti putem Varnisha. 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>

12. Zatim otvorite konfiguracijsku datoteku varnish systemd i pronađite parametar ExecStart koji specificira port koji Varnish sluša i promijenite njegovu vrijednost iz 6081 do 80 kao što je prikazano na snimku ekrana.

systemctl edit --full  varnish

Konfiguracija bi trebala izgledati ovako kada se završi.

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

13. Zatim postavite Apache kao backend server za Varnish proxy, u /etc/varnish/default.vcl konfiguracijskoj datoteci.

vi /etc/varnish/default.vcl 

Pronađite odjeljak backend i definirajte IP i port hosta. Ispod je podrazumevana pozadinska konfiguracija, postavite ovo da ukazuje na vaš stvarni server sadržaja.

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

Ako vaš backend server radi na drugom serveru sa adresom 10.42.1.10, tada bi parametar hosta trebao ukazivati na ovu IP adresu.

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

14. Nakon izvođenja svih potrebnih konfiguracija, ponovo pokrenite HTTPD i Varnish keš memoriju da izvršite gore navedene promjene.

systemctl daemon-reload
systemctl restart httpd
systemctl restart varnish

Korak 4: Testirajte Varnish Cache na Apache-u

15. Na kraju, testirajte da li je Varnish omogućen i radi sa uslugom HTTPD koristeći naredbu cURL ispod, koja se može koristiti za pregled HTTP zaglavlja.

curl -I http://localhost
Sample Output
HTTP/1.1 200 OK
Date: Wed, 06 Jan 2021 08:36:07 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 16 Oct 2014 13:20:58 GMT
ETag: "1321-5058a1e728280"
Accept-Ranges: bytes
Content-Length: 4897
Content-Type: text/html; charset=UTF-8
X-Varnish: 131085
Age: 0
Via: 1.1 varnish (Varnish/6.5)
Connection: keep-alive

Za više informacija pogledajte Varnish Cache Github spremište: https://github.com/varnishcache/varnish-cache

U ovom vodiču smo objasnili kako postaviti Varnish Cache 6.5 proxy za Apache HTTP server na CentOS 7. U slučaju da imate bilo kakvih upita ili dodatnih ideja za podijeliti, koristite obrazac za povratne informacije ispod da nam pišete .