Giunsa ang Pag-install sa Varnish Cache 6 alang sa Nginx sa CentOS/RHEL 8


Ang Varnish Cache (kasagaran gitawag nga Varnish) usa ka open-source, gamhanan, ug paspas nga reverse-proxy nga HTTP accelerator nga adunay modernong arkitektura ug flexible nga configuration nga pinulongan. Ang pagkahimong usa ka reverse proxy nagpasabut nga kini usa ka software nga mahimo nimong i-deploy sa atubangan sa imong web server (nga mao ang gigikanan nga server o backend) sama sa Nginx, aron makadawat mga hangyo sa HTTP sa mga kliyente ug ipasa kini sa gigikanan nga server alang sa pagproseso. Ug naghatud kini sa tubag gikan sa gigikanan nga server sa mga kliyente.

Ang Varnish naglihok isip middleman tali sa Nginx ug mga kliyente apan adunay pipila ka mga benepisyo sa performance. Ang panguna nga katuyoan niini mao ang paghimo sa imong mga aplikasyon nga mas paspas, pinaagi sa pagtrabaho ingon usa ka makina sa pag-cache. Nakadawat kini og mga hangyo gikan sa mga kliyente ug ipasa kini ngadto sa backend kausa aron i-cache ang gihangyo nga sulod (itago ang mga file ug mga tipik sa mga file sa memorya). Unya ang tanan nga umaabot nga mga hangyo alang sa eksakto nga parehas nga sulud igahatag gikan sa cache.

Kini naghimo sa imong mga aplikasyon sa web nga mas paspas ug dili direkta nga nagpauswag sa kinatibuk-ang performance sa imong web server tungod kay ang Varnish magsilbi nga sulod gikan sa memorya imbes sa Nginx nga pagproseso sa mga file gikan sa storage disk.

Gawas sa pag-cache, ang Varnish usab adunay daghang uban pang mga kaso sa paggamit lakip ang usa ka HTTP request router, ug load balancer, web application firewall, ug uban pa.

Ang barnis gi-configure gamit ang labi ka mapadako nga built-in nga Varnish Configuration Language (VCL) nga makapaarang kanimo sa pagsulat sa mga palisiya kung giunsa pagdumala ang umaabot nga mga hangyo. Mahimo nimo kini gamiton sa paghimo og customized nga mga solusyon, mga lagda, ug mga module.

Niini nga artikulo, moagi kami sa mga lakang aron ma-install ang Nginx web server ug Varnish Cache 6 sa usa ka bag-ong CentOS 8 o RHEL 8 server. Ang mga tiggamit sa RHEL 8 kinahanglan nga siguradohon nga mahimo nila ang redhat nga suskrisyon.

Aron ma-set up, usa ka kompleto nga LEMP stack imbes nga i-install ang Nginx web server nga mag-inusara, susiha ang mosunod nga mga giya.

  1. Unsaon Pag-instalar sa LEMP Server sa CentOS 8
  2. Unsaon Pag-instalar sa LEMP Server sa RHEL 8

Lakang 1: I-install ang Nginx Web Server sa CentOS/RHEL 8

1. Ang CentOS/RHEL 8 nagpadala sa pinakabag-o nga bersyon sa Nginx web server software, mao nga atong i-install kini gikan sa default repository gamit ang mosunod nga dnf commands.

# dnf update
# dnf install nginx

2. Sa higayon nga ma-install ang Nginx, kinahanglan nimo nga sugdan, i-enable ug i-verify ang status gamit ang mosunod nga systemctl commands.

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

3. Kung medyo kuryuso ka, mahimo usab nimo susihon ang Nginx TCP socket, nga nagdagan sa port 80 nga default, gamit ang mosunod nga ss command.

# ss -tpln

4. Kung imong gipadagan ang firewall sa sistema, siguruha nga i-update ang mga lagda sa firewall aron tugutan ang mga hangyo sa usa ka web server.

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

Lakang 2: Pag-instalar sa Varnish Cache 6 sa CentOS/RHEL 8

5. Ang CentOS/RHEL 8 naghatag ug Varnish Cache DNF module pinaagi sa default nga adunay version 6.0 LTS (Long Term Support).

Aron ma-install ang module, pagdagan ang mosunud nga mando.

# dnf module install varnish

6. Kung makompleto na ang pag-instalar sa module, mahimo nimong kumpirmahon ang bersyon sa Varnish nga na-install sa imong sistema.

# varnishd -V

7. Human sa pag-instalar sa Varnish Cache, ang nag-unang executable command nga gibutang ubos sa /usr/sbin/varnishd ug varnish configuration files nahimutang sa /etc/varnish/.

Ang file /etc/varnish/default.vcl mao ang nag-unang varnish configuration file nga gisulat gamit ang VCL ug /etc/varnish/secret mao ang varnish secret file.

8. Sunod, sugdi ang serbisyo sa Varnish, pahimoa kini nga awtomatikong magsugod sa panahon sa pag-boot sa sistema ug kumpirmahi nga kini nagdagan ug nagdagan.

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

Lakang 3: Pag-configure sa Nginx sa Pagtrabaho sa Varnish Cache

9. Niini nga seksyon, ipakita namo kung unsaon pag-configure ang Varnish Cache nga modagan atubangan sa Nginx. Sa kasagaran ang Nginx maminaw sa port 80, kasagaran ang matag server block (o virtual host) gi-configure aron maminaw niini nga pantalan.

Pananglitan, tan-awa ang default nginx server block nga gi-configure sa main configuration file (/etc/nginx/nginx.conf).

# vi /etc/nginx/nginx.conf

Pangitaa ang seksyon sa block sa server sama sa gipakita sa mosunod nga screenshot.

10. Sa pagpadagan sa Varnish sa atubangan sa Nginx, kinahanglan nimong usbon ang default nga Nginx port gikan sa 80 ngadto sa 8080 (o bisan unsang laing pantalan nga imong gusto).

Kini kinahanglan nga buhaton sa tanan nga umaabot nga server block configuration file (kasagaran gibuhat ubos sa /etc/nginx/conf.d/) para sa mga site o web application nga gusto nimong i-serve pinaagi sa Varnish.

Pananglitan, ang server block para sa among test site tecmint.lan mao ang /etc/nginx/conf.d/tecmint.lan.conf ug adunay mosunod nga configuration.

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

Importante: Hinumdumi nga disable ang default server block pinaagi sa pagkomento sa configuration section niini sa /etc/nginx/nginx.conf file sama sa gipakita sa mosunod nga screenshot. Makapahimo kini kanimo nga magsugod sa pagpadagan sa ubang mga website/aplikasyon sa imong server, kung dili, ang Nginx kanunay nga magdirekta sa mga hangyo sa default block sa server.

11. Sa higayon nga makompleto ang configuration, susiha ang configuration file alang sa bisan unsang mga sayop ug i-restart ang Nginx nga serbisyo aron magamit ang bag-ong mga kausaban.

# nginx -t
# systemctl restart nginx

12. Sunod, aron makadawat sa mga hangyo sa HTTP gikan sa mga kliyente, kinahanglan natong i-configure ang Varnish nga modagan sa port 80. Dili sama sa naunang mga bersyon sa Varnish Cache diin kini nga kausaban gihimo sa Varnish environment file (nga karon wala na gigamit), sa bersyon 6.0 ug sa ibabaw.

Kinahanglan namon nga buhaton ang gikinahanglan nga pagbag-o sa file sa serbisyo sa Varnish. Pagdalagan ang mosunud nga mando aron maablihan ang angay nga file sa serbisyo alang sa pag-edit.

# systemctl edit --full  varnish

Pangitaa ang mosunod nga linya ug usba ang bili sa -a switch, nga nagtino sa adres sa paminaw ug pantalan. Ibutang ang port sa 80 sama sa gipakita sa mosunod nga screenshot.

Timan-i kung dili nimo isulti ang usa ka adres, ang varnishd maminaw sa tanan nga magamit nga IPv4 ug IPv6 interface nga aktibo sa server.

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

I-save ang mga pagbag-o sa file ug paggawas.

13. Sunod, kinahanglan nimo nga ipasabut ang backend server nga bisitahan sa Varnish aron makuha ang sulud. Gihimo kini sa Varnish main configuration file.

# vi /etc/varnish/default.vcl 

Pangitaa ang default backend configuration section ug usba ang string \default ngadto sa server1 (o bisan unsang ngalan nga imong gusto nga magrepresentar sa imong gigikanan nga server). .

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

Alang sa kini nga giya, gipadagan namon ang Varnish ug Nginx sa parehas nga server. Kung ang imong Nginx web server nagdagan sa lain nga host. Pananglitan, laing server nga adunay adres nga 10.42.0.247, dayon itakda ang .host parameter sama sa gipakita.

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

I-save ang file ug isira kini.

14. Sunod, kinahanglan nimo nga i-reload ang configuration sa systemd manager tungod sa bag-ong mga kausaban sa Varnish service file, unya i-restart ang Varnish service aron magamit ang mga kausaban sama sa mosunod.

# systemctl daemon-reload
# systemctl restart varnish

15. Karon kumpirmahi nga ang Nginx ug Varnish naminaw sa gi-configure nga TCP sockets.

# ss -tpln

Lakang 4: Pagsulay sa Nginx Varnish Cache Setup

16. Sunod, pamatud-i nga ang mga panid sa web gisilbi pinaagi sa Varnish Cache ingon sa mosunod. Ablihi ang usa ka web browser ug navigate gamit ang server IP o FDQN sama sa gipakita sa mosunod nga screenshot.

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

17. Sa laing paagi, gamita ang curl command sama sa gipakita. Gamita ang IP address sa imong server o FQDN sa website o gamita ang 127.0.0.1 o localhost kung nagsulay ka sa lokal.

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

Mapuslanon nga Varnish Cache Administration Utilities

18. Sa niini nga katapusan nga seksyon, kita sa mubo nga paghulagway sa pipila sa mga mapuslanon nga mga programa sa utility nga Varnish Cache barko uban sa, nga imong magamit sa pagkontrolar sa varnishd, access in-memorya logs ug kinatibuk-ang estadistika ug uban pa.

varnishadm usa ka gamit aron makontrol ang usa ka nagdagan nga pananglitan sa Varnish. Nagtukod kini usa ka koneksyon sa CLI sa varnishd. Pananglitan, mahimo nimo kini gamiton sa paglista sa mga na-configure nga backend sama sa gipakita sa mosunod nga screenshot (basaha ang man varnishadm alang sa dugang nga impormasyon).

# varnishadm
varnish> backend.list

Ang varnishlog utility naghatag ug access sa hangyo nga piho nga datos. Nagtanyag kini og kasayuran bahin sa piho nga mga kliyente ug mga hangyo (basaha ang man varnishlog alang sa dugang nga kasayuran).

# varnishlog

Usa ka varnishstat nga nailhan usab nga varnish statistics, nga naghatag kanimo og usa ka pagtan-aw sa kasamtangan nga performance sa Varnish pinaagi sa paghatag og access sa in-memory statistics sama sa cache hits ug misses, impormasyon mahitungod sa storage, thread nga gihimo, deleted nga mga butang (basaha ang man varnishstat alang sa dugang impormasyon) .

# varnishstat 

Ang usa ka varnishtop utility nagbasa sa gipaambit nga memory log ug nagpresentar sa usa ka padayon nga gi-update nga lista sa labing kasagarang nahitabo nga log entries (basaha ang man varnishtop alang sa dugang nga impormasyon).

# varnishtop 

Ang usa ka varnishhist (kasaysayan sa barnis) nag-parse sa mga log sa barnis ug nagpagawas sa usa ka padayon nga gi-update nga histogram nga nagpakita sa pag-apod-apod sa katapusang n hangyo pinaagi sa ilang pagproseso (basaha ang man varnishhist alang sa dugang impormasyon).

# varnishhist

Kana lang! Sa kini nga giya, gipakita namon kung giunsa ang pag-install sa Varnish Cache ug pagdagan kini sa atubangan sa Nginx HTTP server aron mapadali ang paghatud sa sulud sa web sa CentOS/RHEL 8.

Ang bisan unsang mga hunahuna o pangutana bahin sa kini nga giya mahimong ipaambit gamit ang porma sa feedback sa ubos. Alang sa dugang nga kasayuran, basaha ang dokumentasyon sa Varnish Cache.

Ang nag-unang disbentaha sa Varnish Cache mao ang kakulang sa lumad nga suporta alang sa HTTPS. Aron mahimo ang HTTPS sa imong web site/aplikasyon, kinahanglan nimo nga i-configure ang SSL/TLS termination proxy aron magtrabaho kauban ang Varnish Cache aron mapanalipdan ang imong site. Sa among sunod nga artikulo, ipakita namo kung unsaon pag-enable ang HTTPS para sa Varnish Cache gamit ang Hitch sa CentOS/RHEL 8.