Jinsi ya Kufunga Cache ya Varnish kwa Apache kwenye CentOS/RHEL 8


Cache ya Varnish ni chanzo wazi bila malipo, kichapuzi cha kisasa na chenye utendaji wa juu wa programu ya wavuti. Ni seva mbadala ya HTTP yenye kasi ya nyuma inayohifadhi maudhui ili kuharakisha utendakazi wa seva yako ya wavuti, kwa kuhifadhi maudhui ya wavuti kwenye kumbukumbu ya seva - kwenye akiba. Imesanidiwa kuendeshwa mbele ya seva asili kama vile Apache (HTTPD) webserver.

Wakati mteja anaomba maudhui, Varnish hukubali ombi la HTTP, hutuma ombi kwa seva asili, huhifadhi akiba ya vitu vilivyorejeshwa, na kujibu ombi la mteja. Wakati mwingine mteja anapoomba maudhui sawa, Varnish itatumikia kutoka kwa kache. Kwa njia hii, inapunguza muda wa majibu na matumizi ya kipimo data cha mtandao kwenye maombi sawa yajayo.

Varnish pia hufanya kazi kama kipanga njia cha ombi la HTTP, ngome ya programu ya wavuti, kiweka usawazishaji, na zaidi. Imesanidiwa kwa kutumia Lugha inayoweza kunyumbulika ya Usanidi wa Varnish (VCL) ambayo inaweza kupanuliwa kwa kutumia Moduli za Varnish (pia hujulikana kama VMODs), inaauni kwa Edge Side Includes (ESL), Mfinyazo wa Gzip na mtengano na mengine mengi.

Katika makala haya, utajifunza jinsi ya kusakinisha seva ya wavuti ya Apache HTTPD na Varnish Cache 6 kwenye seva mpya ya CentOS/RHEL 8, ikijumuisha kusanidi Varnish ili kuendeshwa mbele ya seva ya HTTPD.

  • Seva iliyo na Usakinishaji wa CentOS 8
  • Seva iliyo na usajili uliowezeshwa wa Red Hat kwenye mfumo wako.

Hatua ya 1: Kusakinisha Seva ya Wavuti ya Apache kwenye CentOS/RHEL 8

1. Anza kwa kusasisha vifurushi vyote vya programu vilivyosakinishwa kwenye mfumo kama ifuatavyo kwa kutumia amri ya DNF.

# dnf update

2. Kisha, endesha amri ifuatayo ili kusakinisha seva ya wavuti ya Apache HTTP kutoka kwenye hazina ya AppStream.

# dnf install httpd

3. Mara tu usakinishaji ukamilika, anzisha huduma ya httpd, uwezesha kuanza kiatomati wakati wa boot ya mfumo, na uangalie hali yake ili kuthibitisha kuwa iko na inafanya kazi, kwa kutumia amri ya systemctl.

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd

4. Kwa chaguo-msingi CentOS/RHEL 8 inajumuisha ngome iliyofungwa kabisa (endesha ngome-cmd -state ili kuthibitisha). Ni lazima ufungue ufikiaji wa huduma ya HTTP kwenye ngome ili kuruhusu watumiaji kufikia tovuti au programu zinazoendeshwa kupitia HTTP, na pia upakie upya mipangilio ya ngome ili kutekeleza mabadiliko mapya.

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

Hatua ya 2: Kusakinisha Akiba ya Varnish 6.4 kwenye CentOS/RHEL 8

5. Sasa kwa kuwa seva ya wavuti ya Apache inafanya kazi, unaweza kuendelea zaidi kusakinisha Cache ya Varnish kwenye mfumo kwa kutumia amri ifuatayo.

# dnf module install varnish

6. Baada ya usakinishaji wa mafanikio, unaweza kuthibitisha toleo la Varnish iliyowekwa kwenye mfumo wako.

# varnishd -V

7. Kisha, kuu inayoweza kutekelezeka imewekwa kama /usr/sbin/varnishd. Pia, faili za usanidi wa Varnish zimehifadhiwa chini ya /etc/varnish saraka, ambapo:

  • /etc/varnish/default.vcl - ni faili kuu ya usanidi wa varnish iliyoandikwa kwa kutumia VCL.
  • /etc/varnish/secret - ni faili ya siri ya varnish.

8. Sasa anza huduma ya varnish, kwa sasa, iwezeshe kuanza kiotomatiki wakati wa kuwasha mfumo ikiwa seva itaanzisha tena na uangalie hali yake ili kuhakikisha kuwa inafanya kazi kama ifuatavyo.

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

Hatua ya 3: Kusanidi Apache kufanya kazi na Cache ya Varnish

9. Sasa ni wakati wa kusanidi Cache ya Varnish ili kukimbia mbele ya huduma ya Apache. Kwa chaguo-msingi seva ya Apache imesanidiwa kusikiliza kwenye bandari 80, hii inafafanuliwa katika faili kuu ya usanidi /etc/httpd/conf/httpd.conf.

Ifungue kwa kuhaririwa kwa kutumia kihariri chako cha maandishi unachokipenda.

# vi /etc/httpd/conf/httpd.conf

Tafuta kigezo cha Sikiliza. Ili kuendesha Varnish mbele ya seva ya Apache, unapaswa kubadilisha lango chaguo-msingi 80 hadi 8080 (au lango lingine lolote upendalo) kama inavyoonyeshwa kwenye picha ya skrini ifuatayo.

Lango hili litaongezwa kama lango la seva ya nyuma katika faili ya usanidi ya Varnish baadaye.

Pia, usanidi wa seva pangishi kwa kila tovuti/programu ambayo itatumika kupitia Varnish inapaswa kusanidiwa ili kusikiliza lango iliyo hapo juu. Huu hapa ni usanidi wa tovuti yetu ya majaribio (/etc/httpd/conf.d/tecmint.lan.conf).

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

Muhimu: Ili kuzuia ukurasa wa majaribio wa seva ya Apache HTTP usitumike kamwe, toa maoni kwa mistari yote kwenye faili /etc/httpd/conf.d/welcome.conf au ufute faili tu.

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

10. Kisha, jaribu syntax ya usanidi wa httpd kwa makosa yoyote. Ikiwa ni sawa, anzisha upya huduma ya httpd ili kutumia mabadiliko mapya.

# httpd -t
# systemctl restart httpd

11. Ili kupeleka Varnish mbele ya HTTPD, unahitaji tu kuisanidi ili kusikiliza maombi ya mteja katika mlango chaguomsingi wa HTTP 80 kama ilivyoelezwa hapa chini.

Kumbuka kuwa katika Varnish Cache 6.0 na ya juu zaidi, lazima uweke seva ya varnish ya bandari inasikiza kwenye faili ya huduma ya Varnish kwa systemd. Kwanza, fungua kwa uhariri.

# systemctl edit --full  varnish

Tafuta laini ya ExecStart, kisha ubadilishe thamani ya swichi ya -a (ambayo inabainisha varnish kusikiliza anwani na mlango) kutoka :6081 hadi :80 kama inavyoonyeshwa kwenye picha ya skrini ifuatayo.

Muhimu zaidi, ikiwa hutabainisha anwani, varnishd itasikiza kwenye violesura vyote vinavyopatikana vya IPv4 na IPv6 vinavyotumika kwenye seva.

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

Hifadhi mabadiliko kwenye faili na uondoke.

12. Sasa, unahitaji kusanidi seva asili, inayojulikana katika istilahi za Varnish kama mazingira ya nyuma. Ni seva inayoelewa HTTP, Varnish inazungumza naye, ili kuleta yaliyomo - httpd katika kesi hii. Imeundwa katika faili kuu ya usanidi /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

Kuna sehemu ya usanidi chaguo-msingi inayoitwa chaguo-msingi. Unaweza kubadilisha \chaguo-msingi hadi seva1 (au jina lolote la chaguo lako ili kukidhi viwango vya mazingira yako). Kwa chaguo-msingi, kigezo cha seva pangishi kinaelekeza kwa mwenyeji, kwa kudhaniwa kuwa seva ya mazingira nyuma inafanya kazi kwenye mwenyeji.

Kisha weka bandari kuwa 8080 (bandari uliyofafanua katika faili ya usanidi wa mwenyeji wa Apache) kama inavyoonyeshwa kwenye picha ya skrini.

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

Ikiwa seva yako ya nyuma inafanya kazi kwenye seva pangishi tofauti, kwa mfano, seva nyingine iliyo na anwani 10.42.1.10, basi kigezo cha mwenyeji kinapaswa kuelekeza kwa anwani hii ya IP.

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

Hifadhi faili na uifunge.

13. Baada ya kufanya mabadiliko yote muhimu kuhusu Varnish, pakia upya usanidi wa msimamizi wa mfumo ili kuonyesha mabadiliko mapya katika faili ya huduma ya Varnish na pia kuanzisha upya huduma ya Varnish ili kutumia mabadiliko ya jumla.

# systemctl daemon-reload
# systemctl restart varnish

14. Kwa wakati huu, Varnish na Apache wanapaswa sasa kusikiliza kwenye bandari 80 na 8080 kwa mtiririko huo. Unaweza kuthibitisha hili kwa kutumia amri ya takwimu za tundu.

# ss -tpln

Hatua ya 4: Kujaribu Cache ya Varnish na Usanidi wa Apache

14. Ili kujaribu usanidi wa Cache-HTTPD ya Varnish, fungua kivinjari cha wavuti, na uendeshe kwa kutumia seva ya IP au FQDN kama inavyoonyeshwa kwenye picha ya skrini ifuatayo.

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

Kisha angalia ikiwa kurasa za wavuti zinahudumiwa kupitia Varnish Cache kama ifuatavyo. Angalia vichwa vya HTTP kwa kubofya kulia kwenye ukurasa wa wavuti unaoonyeshwa, chagua Kagua ili kufungua zana za msanidi, kisha ubofye kichupo cha Mtandao, na upakie upya ukurasa. Kisha chagua ombi la kutazama vichwa vya HTTP ili kuthibitisha hili kama inavyoonyeshwa kwenye picha ya skrini ifuatayo.

Vinginevyo, unaweza kuendesha amri ifuatayo ya curl ili kuithibitisha.

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

Programu muhimu za Utumiaji wa Cache ya Varnish

15. Hebu tumalize mwongozo huu kwa kuangalia baadhi ya programu muhimu ambazo usambazaji wa Cache ya Varnish huja. Zinajumuisha huduma za usimamizi wa akiba ya varnish, kuonyesha rekodi za kina za kumbukumbu, na kutazama takwimu za utendaji wa varnish kama ilivyofafanuliwa hapa chini.

Ya kwanza ni varnishadm ambayo hutumiwa kusimamia mfano wa Varnish inayoendesha. Inaanzisha muunganisho wa kiolesura cha amri kwa varnishd. Inaweza kuathiri mfano wa uendeshaji wa Varnish kwa kuanza na kusimamisha varnish, kubadilisha vigezo vya usanidi, kupakia tena VCL, kuorodhesha nyuma, na zaidi.

# varnishadm
> backend.list

Kwa habari zaidi, soma man varnishadm.

Programu inayofuata ni logi ya varnish ambayo hutumiwa kupata data mahususi ya ombi (yaani habari kuhusu wateja na maombi mahususi). Inatoa kiasi kikubwa cha habari, kwa hivyo ni muhimu kuichuja.

# varnishlog

Kwa habari zaidi, soma varnishlog ya mtu.

Pia tuna varnishstat (takwimu za varnish) ambayo hutumiwa kufikia takwimu za jumla kama vile idadi ya maombi yote, idadi ya vitu na zaidi.

# varnishstat

Kwa habari zaidi, soma man varnishstat.

Kisha tuna varnishtop ambayo shirika linalosoma logi ya Varnish na kuwasilisha orodha inayoendelea kusasishwa ya maingizo ya kumbukumbu yanayotokea sana.

# varnishtop 

Kwa habari zaidi, soma varnishtop ya mtu.

Huduma nyingine muhimu ni varnishhist (historia ya varnish) husoma kumbukumbu za Varnish na inatoa histogram iliyosasishwa kila mara inayoonyesha usambazaji wa maombi ya N ya mwisho kwa kuchakatwa kwao.

# varnishhist

Kwa habari zaidi, soma mtu varnishhist.

Hapo unayo! Umetuma Cache ya Varnish ili kuharakisha maudhui ya programu yako ya wavuti inayotolewa kwa kutumia Seva ya Apache HTTP kwenye CentOS/RHEL 8.

Ikiwa una maswali yoyote kuhusu mada hii au mawazo ya kushiriki, tumia fomu ya maoni iliyo hapa chini. Angalia nyaraka za Varnish Cache 6.0 kwa habari zaidi.

Ikiwa unataka kuwezesha HTTPS kwenye tovuti yako, angalia makala yetu inayofuata, ambayo itaonyesha jinsi ya kuwezesha SSL/TLS kwa Cache ya Varnish kwa kutumia Hitch kwenye CentOS/RHEL 8.