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


Ang Varnish Cache usa ka libre nga open source, moderno ug high-performance nga web application accelerator. Kini usa ka paspas nga reverse HTTP proxy nga nag-cache sa sulud aron mapadali ang pasundayag sa imong web server, pinaagi sa pagtipig sa sulud sa web sa memorya sa server - sa usa ka cache. Gi-configure kini nga modagan atubangan sa gigikanan nga server sama sa Apache (HTTPD) webserver.

Kung ang usa ka kliyente nangayo alang sa sulud, gidawat sa Varnish ang hangyo sa HTTP, gipadala ang hangyo sa gigikanan nga server, gi-cache ang gibalik nga mga butang, ug gitubag ang hangyo sa kliyente. Sa sunod higayon nga mangayo ang kliyente alang sa parehas nga sulud, ang Varnish magsilbi niini gikan sa cache. Niining paagiha, gipakunhod niini ang oras sa pagtubag ug pagkonsumo sa bandwidth sa network sa umaabot nga katumbas nga mga hangyo.

Ang Varnish naglihok usab isip HTTP request router, web application firewall, load balancer, ug uban pa. Gi-configure kini gamit ang flexible nga Varnish Configuration Language (VCL) nga mapalapad gamit ang Varnish Modules (nailhan usab nga mga VMOD), suporta alang sa Edge Side Includes (ESL), Gzip compression ug decompression, ug daghan pa.

Niini nga artikulo, mahibal-an nimo kung giunsa ang pag-install sa Apache HTTPD web server ug Varnish Cache 6 sa usa ka bag-ong server sa CentOS/RHEL 8, lakip ang pag-configure sa Varnish nga modagan sa atubangan sa HTTPD server.

  • Usa ka server nga adunay CentOS 8 nga Pag-install
  • Usa ka server nga adunay gipagana nga Red Hat nga suskrisyon sa imong sistema.

Lakang 1: Pag-instalar sa Apache Web Server sa CentOS/RHEL 8

1. Sugdi pinaagi sa pag-update sa tanang na-install nga software packages sa sistema sama sa mosunod gamit ang DNF command.

# dnf update

2. Sunod, padagana ang mosunod nga sugo aron i-install ang Apache HTTP web server gikan sa AppStream repository.

# dnf install httpd

3. Sa diha nga ang pag-instalar makompleto, sugdi ang httpd nga serbisyo, pahimoa kini nga awtomatik nga magsugod sa panahon sa pag-boot sa sistema, ug susiha ang kahimtang niini aron makumpirma nga kini nagdagan ug nagdagan, gamit ang systemctl nga sugo.

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

4. Pinaagi sa default CentOS/RHEL 8 naglakip sa usa ka bug-os nga naka-lock down nga firewall (pagdagan firewall-cmd –estado sa pagkumpirma). Kinahanglan nimong ablihan ang access sa serbisyo sa HTTP sa firewall aron tugutan ang mga tiggamit nga maka-access sa mga website o aplikasyon nga nagdagan sa HTTP, ug usab i-reload ang mga setting sa firewalld aron magamit ang mga bag-ong pagbag-o.

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

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

5. Karon nga ang Apache web server nagdagan, mahimo ka nga magpadayon sa pag-instalar sa Varnish Cache sa sistema gamit ang mosunod nga sugo.

# dnf module install varnish

6. Human sa malampuson nga pag-instalar, mahimo nimong pamatud-an ang bersyon sa Varnish nga na-install sa imong sistema.

# varnishd -V

7. Sunod, ang nag-unang executable gi-install isip /usr/sbin/varnishd. Usab, ang mga file sa configuration sa Varnish gitipigan ubos sa/etc/varnish directory, diin:

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

8. Karon sugdi ang serbisyo sa barnis, sa pagkakaron, pahimoa kini nga awtomatiko nga magsugod sa panahon sa pag-boot sa sistema kung ang usa ka server magsugod pag-usab ug susihon ang kahimtang niini aron masiguro nga kini molihok sama sa mosunod.

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

Lakang 3: Pag-configure sa Apache nga Magtrabaho sa Varnish Cache

9. Karon na ang panahon sa pag-configure sa Varnish Cache nga modagan atubangan sa serbisyo sa Apache. Sa default ang Apache server gi-configure aron maminaw sa port 80, kini gihubit sa main configuration file /etc/httpd/conf/httpd.conf.

Ablihi kini para sa pag-edit gamit ang imong paboritong text editor.

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

Pangitaa ang parameter sa Listen. Aron makadagan ang Varnish sa atubangan sa Apache server, kinahanglan nimong usbon ang default port 80 ngadto sa 8080 (o bisan unsang ubang pantalan nga imong gipili) sama sa gipakita sa mosunod nga screenshot.

Kini nga pantalan idugang ingon nga pantalan sa backend server sa Varnish configuration file sa ulahi.

Usab, ang virtual host configuration alang sa matag web site/application nga magsilbi pinaagi sa Varnish kinahanglang i-configure aron maminaw sa ibabaw nga pantalan. Ania ang configuration para sa among test site (/etc/httpd/conf.d/tecmint.lan.conf).

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

Importante: Aron mapugngan ang default nga Apache HTTP server test page nga dili na magamit, ikomento ang tanang linya sa file /etc/httpd/conf.d/welcome.conf o i-delete lang ang file.

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

10. Sunod, sulayi ang httpd configuration syntax alang sa bisan unsang mga sayup. Kung OK ra, i-restart ang serbisyo sa httpd aron magamit ang bag-ong mga pagbag-o.

# httpd -t
# systemctl restart httpd

11. Aron ma-deploy ang Varnish sa atubangan sa HTTPD, kinahanglan lang nimo nga i-configure kini aron maminaw sa mga hangyo sa kliyente sa default HTTP port 80 sama sa gipatin-aw sa ubos.

Timan-i nga sa Varnish Cache 6.0 ug mas taas, kinahanglan nimo nga ibutang ang port varnish server nga naminaw sa Varnish service file para sa systemd. Una, ablihi kini alang sa pag-edit.

# systemctl edit --full  varnish

Pangitaa ang ExecStart nga linya, dayon usba ang bili sa -a switch (nga nagtino sa barnis nga paminawon ang adres ug port) gikan sa :6081 ngadto sa :80 ingon sa gipakita sa mosunod nga screenshot.

Importante, 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.

12. Karon, kinahanglan nimo nga i-configure ang gigikanan nga server, nga nailhan sa terminolohiya sa Varnish isip backend. Kini ang server nga nakasabut sa HTTP, nakigsulti sa Varnish, aron makuha ang sulud - httpd sa kini nga kaso. Gi-configure kini sa main configuration file /etc/varnish/default.vcl.

# vi /etc/varnish/default.vcl 

Adunay usa ka default nga seksyon sa pag-configure sa backend nga gitawag nga default. Mahimo nimong usbon ang \default ngadto sa server1 (o bisan unsang ngalan nga imong gipili aron makab-ot ang imong mga sumbanan sa palibot). Sa default, ang parameter sa host nagpunting sa localhost, sa paghunahuna nga ang backend server nagdagan sa localhost.

Dayon ibutang ang port sa 8080 (ang port nga imong gihubit sa Apache virtual host configuration file) sama sa gipakita sa screenshot.

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

Kung ang imong backend server nagdagan sa usa ka lahi nga host, pananglitan, ang lain nga server nga adunay adres nga 10.42.1.10, nan ang host parameter kinahanglan magpunting sa kini nga IP address.

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

I-save ang file ug isira kini.

13. Human sa paghimo sa tanang gikinahanglan nga mga kausaban mahitungod sa Varnish, i-reload ang systemd manager configuration aron mapakita ang bag-ong mga kausaban sa Varnish service file ug i-restart usab ang Varnish service aron magamit ang kinatibuk-ang kausaban.

# systemctl daemon-reload
# systemctl restart varnish

14. Niini nga punto, ang Varnish ug Apache kinahanglan nga maminaw na sa port 80 ug 8080 matag usa. Mahimo nimong kumpirmahon kini gamit ang socket statistics command.

# ss -tpln

Lakang 4: Pagsulay sa Varnish Cache ug Apache Setup

14. Aron masulayan ang Varnish Cache-HTTPD setup, ablihi ang web browser, ug navigate gamit ang server IP o FQDN sama sa gipakita sa mosunod nga screenshot.

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

Dayon susiha kung ang mga web page gisilbi ba pinaagi sa Varnish Cache sama sa mosunod. Susiha ang mga header sa HTTP pinaagi sa pag-right-click sa gipakita nga web page, pilia Inspect to open the developer tools, then click the Network tab, and reload the page. Unya pagpili og usa ka hangyo sa pagtan-aw sa HTTP header sa pagkumpirma niini sama sa gipakita sa mosunod nga screenshot.

Sa laing paagi, mahimo nimong ipadagan ang mosunod nga curl command aron mapamatud-an kini.

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

Mapuslanon nga Varnish Cache Utility Programs

15. Atong tapuson kini nga giya pinaagi sa pagtan-aw sa pipila ka mapuslanon nga mga programa nga ang pag-apod-apod sa Varnish Cache moabut uban. Naglakip kini sa mga gamit alang sa pagdumala sa cache sa barnis, pagpakita sa detalyado nga mga rekord sa log, ug pagtan-aw sa mga istatistika sa pasundayag sa barnis sama sa gihulagway sa ubos.

Ang una mao ang varnishadm nga gigamit sa pagdumala sa usa ka nagdagan nga pananglitan sa Varnish. Nagtukod kini usa ka koneksyon sa interface sa command-line sa varnishd. Makaapektar kini sa usa ka running instance sa Varnish pinaagi sa pagsugod ug paghunong sa varnishd, pag-usab sa mga parameter sa configuration, pag-reload sa VCL, paglista sa mga backend, ug uban pa.

# varnishadm
> backend.list

Para sa dugang nga impormasyon, basaha ang man varnishadm.

Ang sunod nga programa mao ang varnishlog nga gigamit sa pag-access sa datos nga piho sa hangyo (ie impormasyon bahin sa piho nga mga kliyente ug mga hangyo). Naghatag kini og daghang impormasyon, busa kasagarang gikinahanglan ang pagsala niini.

# varnishlog

Para sa dugang nga impormasyon, basaha ang man varnishlog.

Adunay usab kami varnishstat (mga estadistika sa barnis) nga gigamit aron ma-access ang kinatibuk-ang estadistika sama sa gidaghanon sa kinatibuk-ang hangyo, gidaghanon sa mga butang, ug uban pa.

# varnishstat

Para sa dugang nga impormasyon, basaha ang man varnishstat.

Unya kita adunay varnishtop nga usa ka utility nga nagbasa sa Varnish log ug nagpresentar sa usa ka padayon nga updated nga listahan sa mga kasagaran nga nahitabo log entries.

# varnishtop 

Para sa dugang nga impormasyon, basaha ang man varnishtop.

Laing mapuslanon nga gamit mao ang varnishhist (kasaysayan sa barnis) nga utility nga nagbasa sa mga log sa Varnish ug nagpresentar sa usa ka padayon nga gi-update nga histogram nga nagpakita sa pag-apod-apod sa katapusang N nga mga hangyo pinaagi sa ilang pagproseso.

# varnishhist

Para sa dugang nga impormasyon, basaha ang man varnishhist.

Anaa na nimo! Malampuson nimo nga na-deploy ang Varnish Cache aron mapadali ang imong sulud sa aplikasyon sa web nga gisilbi gamit ang Apache HTTP Server sa CentOS/RHEL 8.

Kung naa kay mga pangutana bahin sa kini nga hilisgutan o mga hunahuna nga ipaambit, gamita ang porma sa feedback sa ubos. Tan-awa ang dokumentasyon sa Varnish Cache 6.0 alang sa dugang nga impormasyon.

Kung gusto nimo nga mahimo ang HTTPS sa imong site, susiha ang among sunod nga artikulo, nga magpakita kung giunsa ang pag-enable sa SSL/TLS alang sa Varnish Cache gamit ang Hitch sa CentOS/RHEL 8.