Otu esi etinye Varnish Cache 6 maka Nginx na CentOS/RHEL 8


Cache Varnish (nke a na-akpọkarị Varnish) bụ ihe mepere emepe, dị ike yana ngwa ngwa reverse proxy HTTP accelerator nwere ụkpụrụ ụlọ ọgbara ọhụrụ yana asụsụ nhazi na-agbanwe agbanwe. Ịbụ proxy ntụgharị pụtara naanị na ọ bụ sọftụwia ị nwere ike ibuga n'ihu sava weebụ gị (nke bụ ihe nkesa sitere ma ọ bụ azụ azụ) dị ka Nginx, ịnata arịrịọ HTTP ndị ahịa wee zipu ha na sava izizi maka nhazi. Ma ọ na-ebuga nzaghachi sitere na sava mmalite nye ndị ahịa.

Varnish na-eme dị ka onye etiti n'etiti Nginx na ndị ahịa mana enwere ụfọdụ uru arụmọrụ. Ebumnuche ya bụ ime ka ngwa gị na-ebu ngwa ngwa, site na ịrụ ọrụ dị ka injin caching. Ọ na-anata arịrịọ sitere n'aka ndị ahịa wee bugharịa ha na azụ azụ otu ugboro ka ọ chekwaa ọdịnaya achọrọ (echekwa faịlụ na iberibe faịlụ na ebe nchekwa). Mgbe ahụ, a ga-eziga arịrịọ niile n'ọdịnihu maka ọdịnaya yiri nke ahụ site na cache.

Nke a na-eme ka ngwa weebụ gị na-ebu ngwa ngwa ma na-apụtaghị ìhè na-eme ka arụmọrụ weebụ gị dịkwuo mma n'ihi na Varnish ga-enye ọdịnaya site na ebe nchekwa kama nhazi Nginx faịlụ site na diski nchekwa.

Ewezuga caching, Varnish nwekwara ọtụtụ ikpe ojiji ndị ọzọ gụnyere onye na-arịọ arịrịọ HTTP rawụta, na ibu balancer, firewall web ngwa, na ndị ọzọ.

A na-ahazi varnish ahụ site na iji Asụsụ nhazi nhazi Varnish (VCL) arụnyere nke ukwuu nke na-enyere gị aka ide iwu gbasara otu esi edozi arịrịọ mbata. Ị nwere ike iji ya wuo ngwọta ahaziri iche, iwu na modul.

N'isiokwu a, anyị ga-agafe usoro iji wụnye sava weebụ Nginx na Varnish Cache 6 na sava CentOS 8 ma ọ bụ RHEL 8 ọhụrụ. Ndị ọrụ RHEL 8 kwesịrị ijide n'aka na ha nyere ndenye aha redhat aka.

Iji guzobe, nchịkọta LEMP zuru oke kama ịwụnye sava weebụ Nginx naanị, lelee ntuziaka ndị a.

  1. Otu esi etinye sava LEMP na CentOS 8
  2. Otu esi etinye sava LEMP na RHEL 8

Kwụpụ 1: Wụnye Nginx Web Server na CentOS/RHEL 8

1. Ụgbọ mmiri CentOS/RHEL 8 nwere ụdị ngwanrọ Nginx kachasị ọhụrụ, yabụ anyị ga-etinye ya na ebe nchekwa ndabere site na iji iwu dnf ndị a.

# dnf update
# dnf install nginx

2. Ozugbo arụnyere Nginx, ịkwesịrị ịmalite, mee ma nyochaa ọkwa site na iji iwu systemctl ndị a.

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

3. Ọ bụrụ na ị na-achọsi ike, ị nwekwara ike ịlele oghere Nginx TCP, nke na-agba ọsọ na ọdụ ụgbọ mmiri 80 na ndabara, na-eji iwu ss na-esonụ.

# ss -tpln

4. Ọ bụrụ na ị na-agba ọsọ firewall na usoro ahụ, jide n'aka na ị ga-emelite iwu firewall iji kwe ka arịrịọ na sava weebụ.

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

Kwụpụ 2: Ịwụnye Varnish Cache 6 na CentOS/RHEL 8

5. CentOS/RHEL 8 na-enye modul Varnish Cache DNF site na ndabara nke nwere ụdị 6.0 LTS (Nkwado Ogologo Ogologo).

Iji wụnye modul, mee iwu a.

# dnf module install varnish

6. Ozugbo echichi modul zuru ezu, ị nwere ike kwado ụdị nke Varnish arụnyere na usoro gị.

# varnishd -V

7. Mgbe ị wụnye Varnish Cache, isi iwu arụnyere n'okpuru/usr/sbin/varnished na varnish nhazi faịlụ dị na /etc/varnish/.

Faịlụ /etc/varnish/default.vcl bụ isi faịlụ nhazi varnish edere site na iji VCL na /etc/varnish/secret bụ faịlụ nzuzo varnish.

8. Ọzọ, malite ọrụ Varnish, mee ka ọ nwee ike ịmalite n'oge buut usoro ma gosi na ọ na-agba ọsọ.

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

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

9. N'akụkụ a, anyị ga-egosi otú e si ahazi Varnish Cache na-agba ọsọ n'ihu Nginx. Site na ndabara Nginx na-ege ntị na ọdụ ụgbọ mmiri 80, a na-ahazi ngọngọ sava ọ bụla (ma ọ bụ onye nnabata mebere) ka ọ gee ntị n'ọdụ ụgbọ mmiri a.

Dịka ọmụmaatụ, lelee ngọngọ nginx nkesa ndabara ahaziri na faịlụ nhazi isi (/etc/nginx/nginx.conf).

# vi /etc/nginx/nginx.conf

Chọọ ngalaba ngọngọ nkesa dị ka egosiri na nseta ihuenyo na-esonụ.

10. Iji na-agba ọsọ Varnish n'ihu Nginx, ị kwesịrị ịgbanwe ndabara Nginx ọdụ ụgbọ mmiri si 80 ka 8080 (ma ọ bụ ihe ọ bụla ọzọ n'ọdụ ụgbọ mmiri ị họọrọ).

Ekwesịrị ime nke a na faịlụ nhazi ihe nkesa na-eme n'ọdịnihu (a na-emekarị n'okpuru /etc/nginx/conf.d/) maka saịtị ma ọ bụ ngwa weebụ nke ịchọrọ ijere site na Varnish.

Dịka ọmụmaatụ, ngọngọ sava maka saịtị ule anyị tecmint.lan bụ /etc/nginx/conf.d/tecmint.lan.conf ma nwee nhazi ndị a.

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

Ihe dị mkpa: Cheta ịgbanyụ ngọngọ nkesa ndabara site na ịza ajụjụ ngalaba nhazi ya na faịlụ /etc/nginx/nginx.conf dị ka egosiri na nseta ihuenyo na-esonụ. Nke a na-enyere gị aka ịmalite ịgba ọsọ weebụsaịtị/ngwa ndị ọzọ na ihe nkesa gị, ma ọ bụghị ya, Nginx ga-eduzi arịrịọ mgbe niile na ngọngọ nkesa ndabara.

11. Ozugbo nhazi ahụ zuru ezu, lelee faịlụ nhazi maka njehie ọ bụla ma malitegharịa ọrụ Nginx iji tinye mgbanwe ndị na-adịbeghị anya.

# nginx -t
# systemctl restart nginx

12. Na-esote, iji nweta arịrịọ HTTP sitere n'aka ndị ahịa, anyị kwesịrị ịhazi Varnish ka ọ na-agba ọsọ na ọdụ ụgbọ mmiri 80. N'adịghị ka nsụgharị mbụ nke Varnish Cache ebe mgbanwe a gbanwere na faịlụ gburugburu Varnish (nke a kwụsịrị ugbu a), na ụdị 6.0 na n'elu.

Anyị kwesịrị ime mgbanwe achọrọ na faịlụ ọrụ Varnish. Gbaa iwu a ka imepe faịlụ ọrụ kwesịrị ekwesị maka edezi.

# systemctl edit --full  varnish

Chọta ahịrị ndị a wee gbanwee uru nke mgba ọkụ -a, nke na-akọwapụta adreesị ntị na ọdụ ụgbọ mmiri. Tọọ ọdụ ụgbọ mmiri na 80 dị ka egosiri na nseta ihuenyo na-esonụ.

Rịba ama ma ọ bụrụ na izipụ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ụọ.

13. Na-esote, ịkwesịrị ịkọwa ihe nkesa azụ azụ nke Varnish ga-eleta iji nweta ọdịnaya site na. Emere nke a na faịlụ nhazi isi Varnish.

# vi /etc/varnish/default.vcl 

Chọọ ngalaba nhazi ndabere ndabere wee gbanwee eriri \default ka ọ bụrụ server1 (ma ọ bụ aha ọ bụla ị họọrọ iji nọchite anya ihe nkesa gị) wee tọọ ọdụ ụgbọ mmiri ahụ ka ọ bụrụ 8080 (ma ọ bụ ọdụ ụgbọ mmiri Nginx nke akọwapụtara na ngọngọ sava gị) .

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

Maka ntuziaka a, anyị na-agba Varnish na Nginx n'otu ihe nkesa. Ọ bụrụ na sava weebụ Nginx gị na-agba ọsọ na onye ọbịa dị iche. Dịka ọmụmaatụ, ihe nkesa ọzọ nwere adreesị 10.42.0.247, wee tọọ paramita .host dị ka egosiri.

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

Chekwaa faịlụ ma mechie ya.

14. Ọzọ, ịkwesịrị ịkwanye nhazi njikwa sistemu n'ihi mgbanwe na-adịbeghị anya na faịlụ ọrụ Varnish, wee malitegharịa ọrụ Varnish ka itinye mgbanwe ndị a dị ka ndị a.

# systemctl daemon-reload
# systemctl restart varnish

15. Ugbu a gosi na Nginx na Varnish na-ege ntị na oghere TCP ahaziri.

# ss -tpln

Kwụpụ 4: Nyochaa Nginx Varnish Cache Setup

16. Na-esote, nyochaa ibe weebụ na-eje ozi site na Varnish Cache dị ka ndị a. Mepee ihe nchọgharị weebụ wee gaa na iji ihe nkesa IP ma ọ bụ FDQN dị ka egosiri na nseta ihuenyo na-esonụ.

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

17. Nhọrọ, jiri curl iwu dị ka egosiri. Jiri adreesị IP nke ihe nkesa gị ma ọ bụ FQDN nke weebụsaịtị ma ọ bụ jiri 127.0.0.1 ma ọ bụ localhost ma ọ bụrụ na ị na-anwale na mpaghara.

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

Utilities nchịkwa Varnish Cache bara uru

18. Na nkebi ikpeazụ a, anyị ga-akọwa nkenke ụfọdụ mmemme bara uru bara uru nke Varnish Cache na-ebu ụgbọ mmiri, nke ị nwere ike iji chịkwaa varnishd, nweta ndekọ ihe nchekwa na ọnụ ọgụgụ zuru ezu na ihe ndị ọzọ.

varnishadm bara uru iji jikwaa ihe atụ Varnish na-agba ọsọ. Ọ na-ewepụta njikọ CLI na varnishd. Dịka ọmụmaatụ, ịnwere ike iji ya depụta azụ azụ ahaziri dị ka egosiri na nseta ihuenyo na-esonụ (gụọ man varnishadm maka ozi ndị ọzọ).

# varnishadm
varnish> backend.list

Ọrụ varnishlog na-enye ohere ịnweta data akọwapụtara nke arịrịọ. Ọ na-enye ozi gbasara ndị ahịa na arịrịọ (gụọ man varnishlog maka ozi ndị ọzọ).

# varnishlog

A varnishstat nke a makwaara dị ka ọnụ ọgụgụ varnish, nke na-enye gị nlele anya na arụmọrụ Varnish ugbu a site n'inye ohere ịnweta ọnụ ọgụgụ ebe nchekwa dị ka cache hits na efu, ozi gbasara nchekwa, eriri emepụtara, ihe ehichapụ (gụọ nwoke varnishstat maka ozi ndị ọzọ) .

# varnishstat 

Otu ngwa varnishtop na-agụ ndekọ ebe nchekwa na-ekekọrịta wee na-ewepụta ndepụta ndenye ndekọ na-emekarị na-aga n'ihu (gụọ man varnishtop maka ozi ndị ọzọ).

# varnishtop 

Onye ọrụ varnishhist (varnish History) na-enyocha ndekọ varnish wee wepụta ihe ndekọ akụkọ ihe mere eme na-aga n'ihu na-egosi nkesa arịrịọ ikpeazụ n site na nhazi ha (gụọ man varnishhist maka ozi ndị ọzọ).

# varnishhist

Ọ gwụla! N'ime ntuziaka a, anyị egosila otu esi etinye cache Varnish wee mee ya n'ihu sava Nginx HTTP iji mee ka nnyefe ọdịnaya webụ dị na CentOS/RHEL 8.

Enwere ike ịkekọrịta echiche ma ọ bụ ajụjụ ọ bụla gbasara ntuziaka a site na iji ụdị nzaghachi dị n'okpuru. Maka ozi ndị ọzọ, gụọ akwụkwọ cache Varnish.

Isi ihe ndọghachi azụ nke Varnish Cache bụ enweghị nkwado obodo ya maka HTTPS. Iji mee ka HTTPS dị na webụsaịtị/ngwa ngwa gị, ịkwesịrị ịhazi proxy njedebe SSL/TLS ka ọ rụọ ọrụ yana Varnish Cache iji chebe saịtị gị. N'isiokwu anyị na-esote, anyị ga-egosi otu esi eme HTTPS maka Varnish Cache site na iji Hitch na CentOS/RHEL 8.