Jinsi ya Kufunga Varnish Cache 6 kwa Nginx kwenye CentOS/RHEL 8


Cache ya Varnish (inayojulikana sana kama Varnish) ni kichochezi cha HTTP cha chanzo huria, chenye nguvu, na chenye kasi cha nyuma chenye usanifu wa kisasa na lugha inayoweza kunyumbulika ya usanidi. Kuwa wakala wa nyuma kunamaanisha tu kuwa ni programu ambayo unaweza kupeleka mbele ya seva yako ya wavuti (ambayo ni seva asili au mazingira ya nyuma) kama vile Nginx, ili kupokea maombi ya HTTP ya wateja na kuyasambaza kwa seva asili kwa ajili ya kuchakatwa. Na inatoa jibu kutoka kwa seva asili kwa wateja.

Varnish hufanya kama mtu kati kati ya Nginx na wateja lakini kwa manufaa fulani ya utendaji. Kusudi lake kuu ni kufanya programu zako zipakie haraka, kwa kufanya kazi kama injini ya kache. Inapokea maombi kutoka kwa wateja na kuyapeleka kwenye sehemu ya nyuma mara moja ili kuweka akiba ya maudhui yaliyoombwa (hifadhi faili na vipande vya faili kwenye kumbukumbu). Kisha maombi yote yajayo ya maudhui yanayofanana kabisa yatatumwa kutoka kwa akiba.

Hii hufanya programu zako za wavuti kupakia haraka na kuboresha kwa njia isiyo ya moja kwa moja utendakazi wa jumla wa seva yako ya wavuti kwa sababu Varnish itatumikia yaliyomo kutoka kwa kumbukumbu badala ya faili za usindikaji za Nginx kutoka kwa diski ya kuhifadhi.

Kando na kuweka akiba, Varnish pia ina visa vingine kadhaa vya utumiaji ikijumuisha kipanga njia cha ombi la HTTP, na sawazisha la upakiaji, ngome ya programu ya wavuti, na zaidi.

Vanishi imesanidiwa kwa kutumia Lugha ya Usanidi ya Varnish iliyojengewa ndani sana (VCL) ambayo hukuwezesha kuandika sera kuhusu jinsi maombi yanayoingia yanapaswa kushughulikiwa. Unaweza kuitumia kuunda masuluhisho, sheria na moduli zilizobinafsishwa.

Katika makala haya, tutapitia hatua za kusakinisha seva ya wavuti ya Nginx na Varnish Cache 6 kwenye seva mpya ya CentOS 8 au RHEL 8. Watumiaji wa RHEL 8 wanapaswa kuhakikisha kuwa wamewasha usajili wa redhat.

Ili kusanidi, safu kamili ya LEMP badala ya kusakinisha seva ya wavuti ya Nginx pekee, angalia miongozo ifuatayo.

  1. Jinsi ya Kusakinisha Seva ya LEMP kwenye CentOS 8
  2. Jinsi ya Kusakinisha Seva ya LEMP kwenye RHEL 8

Hatua ya 1: Sakinisha Seva ya Wavuti ya Nginx kwenye CentOS/RHEL 8

1. CentOS/RHEL 8 husafirisha na toleo jipya zaidi la programu ya seva ya wavuti ya Nginx, kwa hivyo tutaisakinisha kutoka kwa hifadhi chaguomsingi kwa kutumia amri zifuatazo za dnf.

# dnf update
# dnf install nginx

2. Mara baada ya Nginx kusakinishwa, unahitaji kuanza, kuwezesha na kuthibitisha hali kwa kutumia amri zifuatazo za systemctl.

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

3. Ikiwa una hamu kidogo, unaweza pia kuangalia tundu la Nginx TCP, ambalo linaendesha bandari 80 kwa chaguo-msingi, kwa kutumia amri ifuatayo ya ss.

# ss -tpln

4. Ikiwa unaendesha ngome kwenye mfumo, hakikisha kuwa umesasisha sheria za ngome ili kuruhusu maombi kwa seva ya wavuti.

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

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

5. CentOS/RHEL 8 hutoa moduli ya Cache ya Varnish ya DNF kwa chaguomsingi ambayo ina toleo la 6.0 LTS (Usaidizi wa Muda Mrefu).

Ili kufunga moduli, endesha amri ifuatayo.

# dnf module install varnish

6. Mara tu usakinishaji wa moduli ukamilika, unaweza kuthibitisha toleo la Varnish iliyowekwa kwenye mfumo wako.

# varnishd -V

7. Baada ya kufunga Cache ya Varnish, amri kuu inayoweza kutekelezwa imewekwa chini ya /usr/sbin/varnishd na faili za usanidi wa varnish ziko kwenye /etc/varnish/.

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

8. Ifuatayo, anza huduma ya Varnish, uiwezesha kuanzisha kiotomatiki wakati wa boot ya mfumo na uhakikishe kuwa iko na inafanya kazi.

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

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

9. Katika sehemu hii, tutaonyesha jinsi ya kusanidi Cache ya Varnish ili kukimbia mbele ya Nginx. Kwa chaguo-msingi, Nginx husikiliza kwenye mlango wa 80, kwa kawaida kila kizuizi cha seva (au seva pangishi pepe) husanidiwa ili kusikiliza kwenye mlango huu.

Kwa mfano, angalia kizuizi chaguo-msingi cha seva ya nginx kilichosanidiwa katika faili kuu ya usanidi (/etc/nginx/nginx.conf).

# vi /etc/nginx/nginx.conf

Tafuta sehemu ya kuzuia seva kama inavyoonyeshwa kwenye skrini ifuatayo.

10. Ili kuendesha Varnish mbele ya Nginx, unapaswa kubadilisha mlango chaguo-msingi wa Nginx kutoka 80 hadi 8080 (au bandari nyingine yoyote unayoipenda).

Hii inapaswa kufanywa katika faili zote za usanidi za kuzuia seva za siku zijazo (kawaida huundwa chini ya /etc/nginx/conf.d/) kwa tovuti au programu za wavuti ambazo ungependa kutumikia kupitia Varnish.

Kwa mfano, kizuizi cha seva cha tovuti yetu ya majaribio tecmint.lan ni /etc/nginx/conf.d/tecmint.lan.conf na ina usanidi ufuatao.

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

Muhimu: Kumbuka kuzima kizuizi chaguo-msingi cha seva kwa kutoa maoni kwenye sehemu yake ya usanidi katika faili ya /etc/nginx/nginx.conf kama inavyoonyeshwa kwenye picha ya skrini ifuatayo. Hii hukuwezesha kuanza kutumia tovuti/programu zingine kwenye seva yako, vinginevyo, Nginx itaelekeza maombi kila mara kwa kizuizi chaguo-msingi cha seva.

11. Mara baada ya usanidi kukamilika, angalia faili ya usanidi kwa makosa yoyote na uanze upya huduma ya Nginx ili kutumia mabadiliko ya hivi karibuni.

# nginx -t
# systemctl restart nginx

12. Kisha, ili kupokea maombi ya HTTP kutoka kwa wateja, tunahitaji kusanidi Varnish ili kuendesha kwenye bandari 80. Tofauti na matoleo ya awali ya Cache ya Varnish ambapo mabadiliko haya yalifanywa katika faili ya mazingira ya Varnish (ambayo sasa imeacha kutumika), katika toleo la 6.0 na. juu.

Tunahitaji kufanya mabadiliko yanayohitajika katika faili ya huduma ya Varnish. Endesha amri ifuatayo ili kufungua faili ya huduma inayofaa kwa uhariri.

# systemctl edit --full  varnish

Tafuta mstari ufuatao na ubadilishe thamani ya swichi ya -a, inayobainisha anwani na mlango wa kusikiliza. Weka mlango hadi 80 kama inavyoonyeshwa kwenye picha ya skrini ifuatayo.

Kumbuka ikiwa hutabainisha anwani, varnishd itasikiliza 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.

13. Kisha, unahitaji kufafanua seva ya nyuma ambayo Varnish itatembelea ili kuchukua maudhui kutoka. Hii inafanywa katika faili kuu ya usanidi wa Varnish.

# vi /etc/varnish/default.vcl 

Tafuta sehemu ya usanidi chaguo-msingi ya mandhari-nyuma na ubadilishe mfuatano \chaguo-msingi hadi seva1 (au jina lolote ulilochagua ili kuwakilisha seva yako asili). Kisha weka mlango hadi 8080 (au mlango wa kusikiliza wa Nginx uliofafanua katika uzuiaji wa seva yako) .

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

Kwa mwongozo huu, tunaendesha Varnish na Nginx kwenye seva moja. Ikiwa seva yako ya wavuti ya Nginx inafanya kazi kwa mwenyeji tofauti. Kwa mfano, seva nyingine iliyo na anwani 10.42.0.247, kisha weka .host parameta kama inavyoonyeshwa.

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

Hifadhi faili na uifunge.

14. Kisha, unahitaji kupakia upya usanidi wa meneja wa mfumo kwa sababu ya mabadiliko ya hivi karibuni katika faili ya huduma ya Varnish, kisha uanze upya huduma ya Varnish ili kutumia mabadiliko kama ifuatavyo.

# systemctl daemon-reload
# systemctl restart varnish

15. Sasa thibitisha kwamba Nginx na Varnish zinasikiliza kwenye soketi za TCP zilizosanidiwa.

# ss -tpln

Hatua ya 4: Kujaribu Usanidi wa Akiba ya Varnish ya Nginx

16. Kisha, thibitisha kwamba kurasa za wavuti zinatolewa kupitia Cache ya Varnish kama ifuatavyo. Fungua kivinjari cha wavuti na uende kwa kutumia IP ya seva au FDQN kama inavyoonyeshwa kwenye picha ya skrini ifuatayo.

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

17. Vinginevyo, tumia amri ya curl kama inavyoonyeshwa. Tumia anwani ya IP ya seva yako au FQDN ya tovuti au tumia 127.0.0.1 au mwenyeji wa ndani ikiwa unajaribu ndani ya nchi.

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

Huduma Muhimu za Utawala wa Cache ya Varnish

18. Katika sehemu hii ya mwisho, tutaelezea kwa ufupi baadhi ya programu muhimu za matumizi ambazo Varnish Cache husafirisha nazo, ambazo unaweza kutumia kudhibiti varnish, kufikia kumbukumbu za kumbukumbu na takwimu za jumla na zaidi.

varnishadm ni matumizi ya kudhibiti mfano wa Varnish inayoendesha. Inaanzisha muunganisho wa CLI kwa varnishd. Kwa mfano, unaweza kuitumia kuorodhesha viambajengo vya nyuma vilivyosanidiwa kama inavyoonyeshwa kwenye picha ya skrini ifuatayo (soma man varnishadm kwa maelezo zaidi).

# varnishadm
varnish> backend.list

Huduma ya varnishlog hutoa ufikiaji wa data mahususi ya ombi. Inatoa taarifa kuhusu wateja maalum na maombi (soma man varnishlog kwa habari zaidi).

# varnishlog

Varnishstat pia inajulikana kama takwimu za varnish, ambayo inakupa mtazamo wa utendaji wa sasa wa Varnish kwa kukupa ufikiaji wa takwimu za kumbukumbu kama vile hits na misses ya kache, maelezo kuhusu hifadhi, nyuzi zilizoundwa, vitu vilivyofutwa (soma man varnishstat kwa maelezo zaidi) .

# varnishstat 

Huduma ya juu ya vanishi husoma kumbukumbu za kumbukumbu zilizoshirikiwa na kuwasilisha orodha inayosasishwa mara kwa mara ya maingizo ya kumbukumbu yanayotokea kwa kawaida (soma man varnishtop kwa maelezo zaidi).

# varnishtop 

Huduma ya varnishhist (historia ya varnish) huchanganua kumbukumbu za varnish na kutoa histogramu iliyosasishwa kila wakati inayoonyesha usambazaji wa maombi ya n mwisho kwa usindikaji wao (soma man varnishhist kwa habari zaidi).

# varnishhist

Ni hayo tu! Katika mwongozo huu, tumeonyesha jinsi ya kusakinisha Varnish Cache na kuiendesha mbele ya seva ya Nginx HTTP ili kuharakisha uwasilishaji wa maudhui ya wavuti katika CentOS/RHEL 8.

Mawazo au maswali yoyote kuhusu mwongozo huu yanaweza kushirikiwa kwa kutumia fomu ya maoni iliyo hapa chini. Kwa habari zaidi, soma nyaraka za Cache ya Varnish.

Kikwazo kikuu cha Cache ya Varnish ni ukosefu wake wa usaidizi asilia kwa HTTPS. Ili kuwezesha HTTPS kwenye tovuti/programu yako ya tovuti, unahitaji kusanidi proksi ya kukomesha SSL/TLS ili kufanya kazi pamoja na Cache ya Varnish ili kulinda tovuti yako. Katika nakala yetu inayofuata, tutaonyesha jinsi ya kuwezesha HTTPS kwa Cache ya Varnish kwa kutumia Hitch kwenye CentOS/RHEL 8.