mars 14, 2022

Slik konfigurerer Du En Varnish cache server-Swapps

Nettsteder med høy trafikk må betjene det samme innholdet flere ganger til forskjellige brukere. Avhengig av søknaden din, kan det være veldig dyrt (ressurser snakker) for å behandle all programlogikk hver gang en bruker ber om nettside. Her er hvor server caching kommer, du kan bare a lagre midlertidig kopi av innholdet i minnet og betjene dette innholdet til alle brukerne.

Varnish er flott å cache innhold på serversiden. I hovedsak bør du cache HTML-innhold, men du kan også cache filer: CSS, js, bilder, dokumenter.

det høres bra ut, men sannheten er som standard Lakk gjør ingenting, eller i det minste kan du kaste bort fordelene med dette stykke programvare, og dokumentasjonen hjelper ikke, så jeg har skrevet denne artikkelen, slik At du kan få mest mulig nytte Av Lakk. Jeg skal forklare hvor og hvordan du konfigurerer, tester og distribuerer En Varnish cache server for din applikasjon.

for demonstrasjonsformål, la oss si at vi har 2 serverforekomster for våre app-og cache-servere med følgende lokale IP-adresser:

  • App Server: 192.168.1.2
  • Bufferserver: 192.168.1.3

Installer Varnish Cache Server

for denne artikkelens formål skal vi installere En Ubuntu server 16.04 Med Varnish 4.0. For å installere Lakk, trenger du bare å kjøre:

sudo apt install varnish

Jeg vil installere Varnish 4.0, og fra nå av vil du være spesielt oppmerksom på 2 spesifikke filer:/etc/default/varnishog /etc/varnish/default.vcl

Backend konfigurasjon

det første du må gjøre er å konfigurere backend eller instruere Lakk hvor webapplikasjonen vil leve:

  • hva er vertsnavnet ELLER IP-adressen?
  • hva er porten?

for å definere at du må gå og oppdatere filen /etc/varnish/default.vcl og finne følgende avsnitt ,som vil bli konfigurert for vårt eksempel formål som dette:

backend default { .host = "192.168.1.2"; .port = "8080"; .first_byte_timeout = 60s; .connect_timeout = 300s;}

Det vil instruere Varnish å lytte programmet kjører PÅ IP 192.168.1.2 og port 8080.

Konfigurer Varnish daemon

Det første du må definere hvor Varnish skal kjøre. Vi skal la den kjøre på standardport 6081. Det er veldig vanlig å kjøre denne demonen på port 80 og 443 FOR SSL, men vi foretrekker Å sette NGINX foran og la den gå til trafikken.

når det gjelder minnet, vil En varnish blank installasjon kjøre MED 256 MB minne, som kan være nok for noen programmer, men for høy trafikk apps, kan det ikke være nok, og mer hvis du har reservert en dedikert server for cache bare.

du kan endre det på:

/etc/default/varnish

Finn følgende avsnitt:

DAEMON_OPTS="-a :6081 \-T localhost:6082 \-f /etc/varnish/default.vcl \-S /etc/varnish/secret \-s malloc,256m"

for å oppdatere mengden RAM, endrer du den siste linjen der det står 256m og oppdaterer for ønsket verdi.:

DAEMON_OPTS="-a :6081 \-T localhost:6082 \-f /etc/varnish/default.vcl \-S /etc/varnish/secret \-s malloc,3G"

Valider at den kjører med riktig konfigurasjon

Bekreft at den kjører som forventet, sjekk prosessen ps aux | grep varnish og du bør se noe som:

/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T :6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,3G

Fix Varnish startup daemon i Noen Ubuntu-installasjoner

Vi har oppdaget en feil der tjenesten ikke følger instruksjonene som er definert på varnish-filen, og Du kan kreve å redigere oppstartstjenesten.

for å gjøre det åpne og redigere filen

/lib/systemd/system/varnish.service

og du vil se noe slikt:

Description=Varnish HTTP acceleratorDocumentation=https://www.varnish-cache.org/docs/4.1/ man:varnishdType=simpleLimitNOFILE=131072LimitMEMLOCK=infinityExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T :6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256MExecReload=/usr/share/varnish/reload-vclProtectSystem=fullProtectHome=truePrivateTmp=truePrivateDevices=trueWantedBy=multi-user.target

for å få det til å fungere, må du oppdatere delen inne I Linjen ExecStart og erstatte den for den nødvendige konfigurasjonen:

ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :6081 -T :6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,3G

Når du er ferdig med det, må du laste tjenesten daemon: systemctl daemon-reload og start Deretter Varnish på Nytt.

slik konfigurerer DU FOR Å RENSE Hurtigbufferen

det er 2 måter å fjerne lakkbufferen på:

  • Start Varnish-tjenesten på nytt.
  • Send EN RENSEFORESPØRSEL til Varnish server.

Restart Lakk det handler bare om å starte tjenesten på nytt:

sudo service varnish restart

Men det vi virkelig trenger er å kunne sende EN RENSEFORESPØRSEL fra applikasjonsserveren. Det kan oppnås ved å instruere serveren til å rense en bestemt BANE eller alle av dem. VED Å bruke CURL, vil forespørselen se ut som:

curl -X PURGE http://192.168.1.3:6181

Som standard Tillater Ikke Varnish EN RENSEFORESPØRSEL fra en ekstern server, så du må tillate forespørsler fra applikasjonsserveren. For å gjøre det, gå og rediger /etc/varnish/default.vcl og finn purge-delen der DU må legge til app server IP-adressen:

acl purge { "localhost"; "127.0.0.1"; "192.168.1.2"/24;}

slik feilsøker DU RENSINGEN

Du må validere at alt fungerer som det skal. For å gjøre det, kan du bruke følgende kommando:

varnishlog -g request -q 'ReqMethod eq "PURGE"'

Deretter kan du sende EN RENSEFORESPØRSEL, og du bør se noe slikt for å bekrefte AT RENSEFORESPØRSELEN ble mottatt:

* << Request >> 1179851- Begin req 1179850 rxreq- ReqStart 192.168.195.197 39700- ReqMethod PURGE- ReqURL /.*- ReqProtocol HTTP/1.1- ReqHeader Host: swapps.com- ReqHeader User-Agent: W3 Total Cache- ReqHeader Connection: close- ReqHeader X-Forwarded-For: 192.168.195.197- VCL_call RECV- Timestamp Process: 1531199642.768541 0.000094 0.000094- RespHeader Date: Tue, 10 Jul 2018 05:14:02 GMT- RespHeader Server: Varnish- RespHeader X-Varnish: 1179851- RespProtocol HTTP/1.1- RespStatus 200- RespReason OK- RespReason Purged- End

en 200 OK status betyr AT alt gikk bra og Varnish har ryddet cachen for den forespurte NETTADRESSEN, og du bør ha alt du trenger for å starte caching innhold på serveren din.

det neste trinnet hvis du ikke har gjort, er å konfigurere reglene for hvilket innhold du vil cache og som ikke, men det er tema for et annet blogginnlegg, og det vil sterkt avhenge av hvilken type applikasjon, rammeverk eller CMS som brukes.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.