Otu esi etinye cache Varnish maka Apache na CentOS/RHEL 8


Cache Varnish bụ ebe mepere emepe n'efu, ngwa ngwa webụ ọgbara ọhụrụ yana arụmọrụ dị elu. Ọ bụ proxy HTTP na-agbanwe ngwa ngwa nke na-echekwa ọdịnaya iji mee ka arụmọrụ sava weebụ gị dị ngwa, site na ịchekwa ọdịnaya weebụ na ebe nchekwa ihe nkesa - na cache. A haziri ya ka ọ na-agba ọsọ n'ihu ihe nkesa si malite dị ka Apache (HTTPD) sava weebụ.

Mgbe onye ahịa rịọrọ maka ọdịnaya, Varnish na-anabata arịrịọ HTTP, ziga arịrịọ ahụ na sava izizi, chekwaa ihe ndị eweghachiri, wee zaghachi arịrịọ onye ahịa. Oge ọzọ onye ahịa na-arịọ maka otu ọdịnaya, Varnish ga-esi na cache na-ejere ya ozi. N'ụzọ dị otú a, ọ na-ebelata oge nzaghachi na netwọk bandwit oriri na-eme n'ọdịnihu kwekọrọ arịrịọ.

Varnish na-arụkwa ọrụ dị ka onye na-arịọ arịrịọ HTTP rawụta, firewall ngwa weebụ, ibu balancer, na ndị ọzọ. A na-ahazi ya site na iji Asụsụ Nhazi Varnish na-agbanwe agbanwe (VCL) nke enwere ike ịgbanyụ site na iji Varnish Modules (nke a makwaara dị ka VMODs), na-akwado Edge Side Includes (ESL), mkpakọ Gzip na mgbakasị ahụ, na ọtụtụ ndị ọzọ.

N'isiokwu a, ị ga-amụta ka esi etinye sava weebụ Apache HTTPD na Varnish Cache 6 na sava CentOS/RHEL 8 ọhụrụ, gụnyere ịhazi Varnish ka ọ na-agba ọsọ n'ihu sava HTTPD.

  • Ihe nkesa nwere nwụnye CentOS 8
  • Ihe nkesa nwere ndebanye aha Red Hat na sistemụ gị.

Kwụpụ 1: Ịwụnye Apache Web Server na CentOS/RHEL 8

1. Malite site na imelite ngwugwu ngwanrọ niile arụnyere na sistemụ dị ka ndị a site na iji iwu DNF.

# dnf update

2. Na-esote, gbaa iwu na-esonụ iji wụnye sava weebụ Apache HTTP site na ebe nchekwa AppStream.

# dnf install httpd

3. Ozugbo echichi zuru ezu, malite ọrụ httpd, mee ka ọ malite na-akpaghị aka n'oge boot boot, wee lelee ọnọdụ ya iji gosi na ọ na-arụ ọrụ, na-eji usoro systemctl.

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

4. Site na ndabara CentOS/RHEL 8 na-agụnye firewall ekpochi kpamkpam (na-agba ọsọ firewall-cmd -state iji gosi). Ị ga-emepe ohere ịnweta ọrụ HTTP na firewall iji mee ka ndị ọrụ nweta weebụsaịtị ma ọ bụ ngwa na-agafe HTTP, ma tinyegharịa ntọala firewalld iji tinye mgbanwe ọhụrụ ahụ.

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

Kwụpụ 2: Wụnye Varnish Cache 6.4 na CentOS/RHEL 8

5. Ugbu a na sava weebụ Apache na-agba ọsọ, ị nwere ike ịga n'ihu iji wụnye Varnish Cache na usoro site na iji iwu na-esonụ.

# dnf module install varnish

6. Mgbe echichi nke ọma, ị nwere ike nyochaa ụdị nke Varnish arụnyere na sistemụ gị.

# varnishd -V

7. Na-esote, arụnyere isi executable dị ka /usr/sbin/varnished. Ọzọkwa, a na-echekwa faịlụ nhazi Varnish n'okpuru /etc/varnish directory, ebe:

  • /etc/varnish/default.vcl – bụ isi faịlụ nhazi varnish nke ejiri VCL dee.
  • /etc/varnish/secret - bụ faịlụ nzuzo varnish.

8. Ugbu a malite ọrụ varnish, maka ugbu a, mee ka ọ malite na-akpaghị aka n'oge buut sistemu ma ọ bụrụ na ihe nkesa malitegharịa wee lelee ọnọdụ ya iji hụ na ọ na-agba ọsọ dị ka ndị a.

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

Kwụpụ 3: Ịhazi Apache ka ọ rụọ ọrụ na Cache Varnish

9. Ugbu a ọ bụ oge ịhazi Varnish Cache ka ọ na-agba ọsọ n'ihu ọrụ Apache. Site na ndabara ahaziri ihe nkesa Apache ka ọ gee ntị na ọdụ ụgbọ mmiri 80, akọwara nke a na faịlụ nhazi isi /etc/httpd/conf/httpd.conf.

Mepee ya maka iji ndezi ederede ọkacha mmasị gị.

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

Chọọ paramita Listen. Iji mee Varnish n'ihu ihe nkesa Apache, ị kwesịrị ịgbanwe ọdụ ụgbọ mmiri 80 na 8080 (ma ọ bụ ọdụ ụgbọ mmiri ọ bụla ọzọ ị họọrọ) dị ka egosiri na nseta ihuenyo na-esonụ.

A ga-agbakwunye ọdụ ụgbọ mmiri a dị ka ọdụ ụgbọ mmiri ihe nkesa azụ na faịlụ nhazi Varnish ma emechaa.

Ọzọkwa, a ga-ahazi nhazi nhazi nnabata maka weebụsaịtị/ngwa ọ bụla nke ga-eje ozi site na Varnish ka ọ gee ntị n'ọdụ ụgbọ mmiri dị n'elu. Nke a bụ nhazi maka saịtị ule anyị (/etc/httpd/conf.d/tecmint.lan.conf).

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

Ihe dị mkpa: Iji gbochie ibe ule ihe nkesa Apache HTTP ndabara ka a ghara iji ya, kwupụta ahịrị niile dị na faịlụ /etc/httpd/conf.d/welcome.conf ma ọ bụ ihichapụ faịlụ ahụ.

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

10. Ọzọ, nwalee httpd nhazi syntax maka njehie ọ bụla. Ọ bụrụ na ọ dị mma, malitegharịa ọrụ httpd ka itinye mgbanwe ọhụrụ ahụ.

# httpd -t
# systemctl restart httpd

11. Iji tinye Varnish n'ihu HTTPD, naanị ịkwesịrị ịhazi ya ka ọ gee ntị na arịrịọ ndị ahịa na ọdụ ụgbọ mmiri HTTP ndabara 80 dị ka akọwara n'okpuru.

Rịba ama na na Varnish Cache 6.0 na karịa, ị ga-edozi ihe nkesa ọdụ ụgbọ mmiri na-ege ntị na faịlụ ọrụ Varnish maka systemd. Mbụ, mepee ya maka ndezi.

# systemctl edit --full  varnish

Chọọ ahịrị ExecStart, wee gbanwee uru nke mgba ọkụ -a (nke na-akọwapụta varnish gee adreesị na ọdụ ụgbọ mmiri) site na :6081 gaa na :80 dị ka egosiri na nseta ihuenyo na-esonụ.

Nke kachasị mkpa, ọ bụrụ na ị kọwapụtaghị adreesị, varnishd ga-ege ntị na ihu IPv4 na IPv6 niile dị na sava ahụ.

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

Chekwaa mgbanwe na faịlụ wee pụọ.

12. Ugbu a, ịkwesịrị ịhazi ihe nkesa mmalite, mara na okwu Varnish dị ka azụ azụ. Ọ bụ ihe nkesa na-aghọta HTTP, Varnish na-akparịta ụka, iji nweta ọdịnaya - httpd na nke a. A na-ahazi ya na faịlụ nhazi isi /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

Enwere ngalaba nhazi ndabere ndabere nke akpọrọ ndabara. Ị nwere ike ịgbanwe \default ka ọ bụrụ server1 (ma ọ bụ aha ọ bụla ị họọrọ imezu ụkpụrụ gburugburu ebe obibi gị) Site na ndabara, paramita nnabata na-atụ aka na localhost, na-eche na sava azụ na-arụ ọrụ na localhost.

Mgbe ahụ tọọ ọdụ ụgbọ mmiri ahụ na 8080 (ọdụ ụgbọ mmiri ị kọwara na faịlụ nhazi nhazi nke Apache) dị ka egosiri na nseta ihuenyo.

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

Ọ bụrụ na ihe nkesa azụ azụ gị na-agba ọsọ na onye ọbịa dị iche, dịka ọmụmaatụ, ihe nkesa ọzọ nwere adreesị 10.42.1.10, mgbe ahụ paramita nnabata kwesịrị ịrụtụ aka na adreesị IP a.

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

Chekwaa faịlụ ma mechie ya.

13. Mgbe ịmechara mgbanwe niile dị mkpa gbasara Varnish, bugharịa nhazi njikwa sistemu iji gosipụta mgbanwe ọhụrụ na faịlụ ọrụ Varnish ma malitegharịa ọrụ Varnish iji tinye mgbanwe niile.

# systemctl daemon-reload
# systemctl restart varnish

14. N'ebe a, Varnish na Apache kwesịrị ịdị na-ege ntị na ọdụ ụgbọ mmiri 80 na 8080 n'otu n'otu. Ị nwere ike kwado nke a site na iji iwu ọnụ ọgụgụ sọket.

# ss -tpln

Kwụpụ 4: Nyochaa Cache Varnish na Apache Setup

14. Iji nwalee nhazi Varnish Cache-HTTPD, mepee ihe nchọgharị weebụ, wee gaa na iji IP ma ọ bụ FQDN nkesa dị ka egosiri na nseta ihuenyo na-esonụ.

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

Wee lelee ma a na-enye ibe weebụ site na Cache Varnish dị ka ndị a. Lelee nkụnye eji isi mee HTTP site na ịpị aka nri na ibe weebụ egosiri, họrọ Nyochaa ka imepe ngwaọrụ ndị nrụpụta, wee pịa Network tab, wee bugharịa ibe ahụ. Wee họrọ arịrịọ ka ilele nkụnye eji isi mee HTTP iji kwado nke a dịka egosiri na nseta ihuenyo na-esonụ.

N'aka nke ọzọ, ịnwere ike ịme iwu curl na-esote iji nyochaa ya.

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

Mmemme bara uru cache Varnish bara uru

15. Ka anyị kwụsị ntuziaka a site n'ịlele ụfọdụ mmemme bara uru nke nkesa Varnish Cache na-abịa. Ha gụnyere akụrụngwa maka nlekọta cache varnish, na-egosipụta ndekọ ndekọ zuru ezu, na lelee ọnụ ọgụgụ arụmọrụ varnish dị ka akọwara n'okpuru.

Nke mbụ bụ varnishadm nke a na-eji na-eduzi ihe atụ Varnish na-agba ọsọ. Ọ na-ewepụta njikọ interface-ahịrị na varnishd. Ọ nwere ike imetụta ihe atụ na-agba ọsọ nke Varnish site na ịmalite na ịkwụsị varnishd, gbanwee nhazi nhazi, ibugharị VCL, depụta azụ azụ, na ndị ọzọ.

# varnishadm
> backend.list

Maka ozi ndị ọzọ, gụọ man varnishadm.

Ihe omume na-esote bụ varnishlog nke a na-eji nweta data akọwapụtara nke arịrịọ (ya bụ ozi gbasara ndị ahịa na arịrịọ). Ọ na-enye ozi buru ibu, ya mere ọ na-adịkarị mkpa iji nyochaa ya.

# varnishlog

Maka ozi ndị ọzọ, gụọ nwoke varnishlog.

Anyị nwekwara varnishstat (ọnụọgụ varnish) nke a na-eji nweta mkpokọta mkpokọta dịka ọnụọgụ nke arịrịọ mkpokọta, ọnụọgụ ihe, na ndị ọzọ.

# varnishstat

Maka ozi ndị ọzọ, gụọ nwoke varnishstat.

Mgbe ahụ, anyị nwere varnishtop nke akụrụngwa na-agụ akwụkwọ ndekọ Varnish ma na-eweta ndepụta emelitere na-aga n'ihu nke ndenye ndekọ na-emekarị.

# varnishtop 

Maka ozi ndị ọzọ, gụọ nwoke varnishtop.

Ihe ọzọ bara uru bụ varnishhist (varnish History) utility na-agụ akwụkwọ ndekọ aha Varnish ma na-eweta ihe ndekọ akụkọ ihe mere eme na-aga n'ihu na-egosi nkesa arịrịọ N ikpeazụ site na nhazi ha.

# varnishhist

Maka ozi ndị ọzọ, gụọ nwoke varnishhist.

Ebe ị nwere ya! Ị bufee cache Varnish nke ọma iji mee ka ọdịnaya ngwa weebụ gị dị ngwa nke ejiri Apache HTTP Server na CentOS/RHEL 8.

Ọ bụrụ na ị nwere ajụjụ ọ bụla gbasara isiokwu a ma ọ bụ echiche ị ga-ekekọrịta, jiri ụdị nzaghachi dị n'okpuru. Lelee akwụkwọ Varnish Cache 6.0 maka ozi ndị ọzọ.

Ọ bụrụ na ịchọrọ ịme HTTPS na saịtị gị, lelee akụkọ anyị na-esote, nke ga-egosi otu esi eme SSL/TLS maka Varnish Cache site na iji Hitch na CentOS/RHEL 8.