Skip to content

WCFV

Analytics Blog

Menu
Menu

Konfigurer Varnish Cache og Øk Hastigheten På Applikasjonens Lastetid 10x Raskere

Posted on mars 2, 2022 by admin
varnish cache

uansett størrelsen og kompleksiteten til applikasjonen din, vil brukerne foretrekke å bli eller fortsette å komme tilbake hvis de nyter hastigheten der det dynamiske innholdet fra applikasjonen din blir gjengitt. Forbedret ytelse, rask levering av sider og rask serverrespons er også noen av de få faktorene som holder brukerne hekta på søknaden din.

Disse og mange flere er medvirkende faktorer for en vellykket og populære web-applikasjon. Mens det er flere teknikker og strategier tilgjengelig for å bidra til å øke hastigheten på moderne webapplikasjoner, har det vist seg å være mye mer verdifullt å utføre caching.

hver forespørsel til en bestemt side på nettstedet ditt kommuniserer direkte og får svar fra serveren din. Så hver gang en bruker besøker en bestemt side, gjør front-end ET HTTP-anrop for å hente riktig innhold og serveren din er bundet til å svare tilsvarende.

for en liten skala web-applikasjon, dette kan ikke være for mye, men når programmet begynner å skalere, et stort antall forespørsler til webserveren vil gradvis begynne å bli for mye å håndtere. Dette betraktes ofte som en unødvendig overbelastning.

Å Betjene en nettside tar opp mange ressurser-spesielt når den genereres dynamisk som de som er opprettet via PHP. Derfor, i Denne Varnish cache opplæringen, vil jeg vise deg hvordan du kan øke hastigheten PÅ PHP-programmet uten nødvendigvis skalering vertikalt eller horisontalt, men ved Hjelp Av Lakk.

Hva Er Varnish Cache Og Hvorfor Bruke det

Varnish cache er en webapplikasjonsakselerator også kjent SOM CACHING HTTP reverse proxy. Det fungerer mer som en mellommann mellom klienten din (dvs. bruker) og webserveren din. Det betyr at I stedet for at webserveren din direkte lytter til forespørsler om spesifikt innhold hele tiden, Vil Varnish påta seg ansvaret.

Når en forespørsel kommer inn for første gang, Vil Varnish i PHP lede den til webserveren for et passende svar. Dette svaret vil bli bufret Av Varnish i PHP før det sendes til klienten. Interessant, vil en senere forespørsel om slikt innhold bare bli servert direkte fra Varnish cache i stedet for å gå rett til webserveren. Med dette på plass, vil webapplikasjonen din kunne håndtere et stort antall samtidige forespørsler fra flere brukere, da serveren ikke engang vil bli startet. Dette vil resultere i en magisk økning i ytelse for din søknad.

PHP Varnish bruker Varnish Configuration Language (VCL) slik at du kan endre oppførselen ved å legge til logikk for å manipulere forespørsler. Du kan manipulere svar som kommer tilbake fra webserveren, fjerne informasjonskapsler eller legge til overskrifter i svaret.

varnish workflow

Get /some-web — side (klient) – → Cache – →

arbeidsflyt for varnish cache

varnish cache workflow

la oss anta at den første forespørselen til siden tar ca 200ms.

nå, når caching innholdet på en slik side helt, endres strømmen helt og forespørselen fra klienten til den samme siden vil ikke treffe serveren direkte igjen, Fordi Varnish allerede har cached den tidligere. Ta en titt på illustrasjonen nedenfor:

GET /some-web-side (klient ) -→ Cache (HIT) . — > og tilbake til klienten

en senere forespørsel til siden 10ms…..

Fantastisk riktig?

derfor er ideen å redusere antall forespørsler sendt til backend-serveren så mye som mulig. Dette vil i retur øke sidegjengivelseshastigheten for webapplikasjonen din.

Komme i gang Med Varnish Configuration

nå, som du har gått videre med den grunnleggende introduksjonen Av Varnish og dens caching-evner, er det på tide å konfigurere Varnish og bruke Den til ET PHP-program. Komme i Gang Med Lakk er enkelt. For å sette opp riktig, vil vi bruke og trekke et eksisterende program fra GitHub og distribuere Det Til DigitalOcean-serveren. Etter det vil Vi konfigurere Lakk.

sett Deretter opp en gratis konto På DigitalOcean, og når du har fullført det, klikker du på «Create» – knappen, og fra rullegardinmenyen velger du «Droplets» for å lage en ny dråpe.

Rull ned for å velge Ubuntu 16.04 og merk at du bør velge størrelsen på en dråpe, den minste størrelsen bør være nok for denne lakk cache opplæringen.

Rull ned for å legge TIL EN SSH-nøkkel, hvis du har en. Dette vil hjelpe deg å enkelt logge på serveren senere, ellers må du sjekke innboksen din for standardpassordet for dråpen din. Deretter legger du til et vertsnavn. Jeg har kalt min lakk-demo. Klikk Nå På Opprett for å begynne å lage dråpen.

når prosessen er fullført, vil du se den nye dråpen i listen over dråper. Gå videre og legg TIL SSH i dråpen din ved HJELP AV IP-adressen.

Gjør Deg Klar For Core Web Vitals Update

Ebook For Å Øke Hastigheten På Nettstedet Ditt Før Du Begynner Å Miste Trafikk.

Takk

listen din er På vei Til Innboksen din.

Installer Nginx webserver

du kan nå oppdatere pakkelisten og installere Nginx. Kjør følgende kommando for å utføre det:

sudo apt updatesudo apt install -y nginx
  • Merk :- y flagg er å svare med et standard svar på et spørsmål under installasjonen

På Ubuntu 16.04 Er Nginx forhåndskonfigurert for å begynne å kjøre ved installasjon, så når installasjonen er fullført, kan Du besøke ip-adressen til dråpen din i nettleseren:

http://server_domain_or_ip

Trekk demo fra GitHub

jeg vil bruke Git til å trekke prøveprosjektet Fra GitHub, det kommer forhåndsinstallert Med Ubuntu 16.04. For å sjekke om den allerede er installert på serveren din eller ikke, bruk kommandoen nedenfor:

git -v

hvis du får en melding om At Git ikke er installert som standard, må du kjøre følgende kommando for å installere den:

apt install -y git

Deretter må du bruke samme mappe som huser standardsiden for Nginx webserveren, så naviger til den offentlige katalogen:

cd / var / www

Fjern html-mappen, opprett den på nytt og flytt inn i den:

rm -rf htmlmkdir htmlcd html

nå klone depotet

// Install projectgit clone https://github.com/yemiwebby/varnish-demo.git

med dette på plass, har du nå et prøveprosjekt installert på serveren din. MEN DET vil ikke være tilgjengelig for nå, og det er fordi vi ikke har installert PHP. La oss gjøre det.

Du Kan Også Like: Bruke Memcached MED PHP

Installere PHP og Konfigurere Nginx Til Å Bruke PHP-Prosessoren

Nginx inneholder ikke innfødt PHP-behandling som noen andre webservere. Vi installerer en programvare som heter php-fpm og instruerer Nginx til å sende ALLE PHP-forespørsler til den. Naviger tilbake til rotkatalogen på webserveren din og kjør følgende kommando for å installere PHP-FPM-modulen:

$ cd ~$ sudo apt install php-fpm

når installasjonsprosessen er fullført, kan Du nå konfigurere Nginx til å bruke den installerte PHP-prosessoren. Åpne Standard Nginx server block konfigurasjonsfil med:

sudo nano /etc/nginx/sites-available/default

og erstatte innholdet med:

server { listen 80 default_server; listen :80 default_server; root /var/www/html; index index.php; server_name YOUR_SERVER_IP; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; }}

når Du er ferdig, last Nginx for å gjøre de nødvendige endringene:

$ sudo systemctl reload nginx

nå kan du besøke siden i din favoritt webserver ved HJELP av droplet IP-adresse:

http://ip_address

Aktivere bufring Med Varnish

hvis du undersøker siden for å vise HTTP-overskriftene fra nettverk-fanen, vil Du ikke merke Noen Spor Av Varnish fordi Den ikke er installert eller konfigurert til å håndtere en forespørsel. La oss endre det ved å installere Varnish på vår webserver. For å gjøre dette, skriv inn følgende kommando:

$ sudo apt install -y varnish

Dette vil gå gjennom prosessen med å installere En Lakk cache på serveren din. Etter å ha fullført installasjonen, start Og aktiver Lakk med:

systemctl start varnishsystemctl enable varnish

Varnish som standard lytter på port 6081. For å bekrefte dette, åpne nettleseren din og besøk din droplet IP-adresse igjen, men denne gangen må du sørge for at du legger til: 6081 som vist nedenfor:

Nginx, som er webserveren som er ansvarlig for å laste innholdet i webapplikasjonen din, kjører på port 80. For å tillate Varnish å ta ansvar for caching og gjengivelse av siden så raskt som mulig, må den sitte mellom webappklienten og serveren. Dette vil sikre at enhver forespørsel til serveren din som for det meste vil være på port 80, vil bli oppfanget Av Varnish, og avhengig av om Det er en cache hit eller savner, Vil Varnish handle på det tilsvarende og returnere riktig svar.

jeg vil endre prosessen ved å konfigurere Lakk på port 80 og Nginx på port 8080. For å gjøre dette, rediger nettstedets Nginx-konfigurasjonsfil igjen. I vårt tilfelle er denne filen / etc / nginx / sites-available / default. Endre 80 til 8080:

server { listen 8080 default_server; listen :8080 default_server; root /var/www/html;}

Port 80 vil nå være gratis å bruke Til Lakk. Last Inn Din Nginx-konfigurasjon med:

sudo systemctl reload nginx

og sjekk tilgjengeligheten til nettstedet ditt ved HJELP AV IP-adressen din med port 8080 vedlagt den:

når Varnish ble installert tidligere, ble det også opprettet to konfigurasjonsfiler på serveren. De er:

  • /etc/default/varnish
  • /etc / varnish / default.vcl

jeg vil bruke disse filene til konfigurasjoner som å åpne en port For Lakk og manipulere forespørsler. Åpne nå denne filen / etc / default / varnish:

sudo nano /etc/default/varnish

# Lytt på port 6081, administrasjon på localhost:6082, og videresend til

# en innholdsserver valgt av vcl-filen, basert på forespørselen.

DAEMON_OPTS= » – a :6081 \

-T localhost:6082 \

-f / etc / lakk / standard.vcl \

– s / etc / varnish / secret \

– s malloc, 256m»

Se etter linjen over og endre-a :6081 til-a :80.

Åpne deretter filen /etc/varnish/default.vcl:

sudo nano /etc/varnish/default.vcl

og sjekk at standard backend er satt til port 8080, fordi Dette er Hvor Nginx serverer fra nå. Se etter linjen nedenfor og kontroller at .havnen er 8080.

# Standard backend definisjon. Sett dette til å peke til innholdsserveren din.

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

det neste er å kopiere lakken.service fil til vår systemd katalog. Dette vil gjøre det mulig for systemd å starte Lakk på port 80. Kjør kommandoen nedenfor:

$ sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/

dette vil kopiere Varnish-tjenestefilen.

Neste, åpne den:

$ sudo nano /etc/systemd/system/varnish.service

og se Etter ExecStart-linjen:

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

endre nå-F-a: 6081 til-F – a: 80. Lagre og avslutt filen.

hvis du sjekker nettverksstatistikken ved hjelp av netstat-kommandoen:

:~# netstat -plntu

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:6081 0.0.0.0:* LISTEN 13257/varnishd

tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN 13257/varnishd

tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2440/nginx -g daemo

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1648/sshd

tcp6 0 0 :::6081 :::* LISTEN 13257/varnishd

tcp6 0 0 :::8080 :::* LISTEN 2440/nginx -g daemo

tcp6 0 0 :::22 :::* LYTT 1648 / sshd

du vil legge merke Til At Varnish cache fortsatt kjører på port 6081. Endre det ved å starte Lakk:

systemctl daemon-reloadsystemctl restart varnish

Og start Også Nginx på nytt.

sudo service nginx restart

for øyeblikket, hvis DU besøker ip-adressen til nettsiden din, vil Du legge merke til at nettstedet fortsatt fungerer perfekt, men inspeksjon AV HTTP-overskriften vil indikere At Varnish er installert og kjører.

Du Vil Kanskje Også Like: Integrer PHP Opcache & Gjør Søknaden Din Stor Med Ytelse

en oversikt over Varnish intern

Varnish utløser et par rutiner under fullføring av caching-innholdet i webapplikasjonen din. La oss ta en titt på noen av de viktigste rutinene, og hva hver enkelt gjør for å sikre at innholdet leveres med lysets hastighet som igjen vil forbedre ytelsen til webapplikasjonen din:

  • sub vcl_recv{}: Dette er den første linjen Som Varnish vil treffe øyeblikket klienten aksepterer en forespørsel.
  • sub vcl_backend_response {}: denne tilbakeringingen kalles etter svar og er hentet fra backend-serveren. Du kan også gjøre endringer i svaret her i denne blokken.
  • sub vcl_backend_fetch {}:
  • sub vcl_deliver {}: dette er den siste rutinen SOM VCL vil treffe før du sender et svar til klienten. Her kan du enkelt gjøre noen opprydding, som å fjerne hva du ikke vil at klienten skal se og så videre.

Q: hvordan fjerne Lakk cache?

A: Du kan rense All Lakk cache fra kommandolinjen ved hjelp av ban kommandoen:
varnishadm » ban.url .»#Matcher Alle Nettadresser
du kan også forby bestemte cacher ved å beskrive vertsnavnet:
varnishadm » ban req.http.vert == xxx.com »

Q: hvordan deaktivere Lakk cache?

A: du kan enkelt deaktivere Lakk fra nettstedet ditt ved a redigere Det .htaccess-fil med følgende kode:
Header legg til «Cache-Control «»no-cache»
dette vil midlertidig deaktivere Lakk fra nettstedet ditt. Du kan senere aktivere Lakk ved å fjerne følgende kode.

Q: Hvordan rense Lakk cache MED CLI?

A: du kan fjerne eller rense varnish-hurtigbufferen ved ganske enkelt å starte Varnish-tjenesten på Nytt. Dette vil rense Hele Varnish cache fordi den er lagret i minnet som standard:
/ etc / varnish restart
Eller
service varnish restart

Q: hvordan sjekke Om Varnish cache fungerer eller ikke?

A: for å sjekke om Varnish-tjenesten fungerer bra eller ikke, bruk X-Varnish-hodet som lar deg vite den aktive/ikke-aktive tilstanden til tjenesten. For å se mer detaljert om det treffer cachen, bruk X-Cache header for å få en fullstendig analyse av cacher.

Spørsmål: Varnish cache vs Memcached: Hvilken er bedre?

A: Begge Varnish & Memcached er nyttige spesielt caching domener, men det er noen forskjeller mellom de to.
Du kan bruke Memcached som en in-memory, distribuert backend for caching programmer ressurser.
Mens Varnish brukes som en omvendt proxy til eksternt cache programmets HTTP-forespørsler.
Memcached kan betegnes som generell caching system som det bufrer resultater fra databasen og krever små endringer I GET-metoden.
Mens Varnish fungerer bak webserveren, bufrer nettsider, og krever ikke endringer i kode.

Final Words

i dette innlegget har jeg knapt skrapet overflaten av Hva du kan gjøre med Lakk. Det er så kraftig at du kan gjøre mye mer med det. Bortsett Fra å kunne cache innholdet i webapplikasjonen din og håndtere forespørsler, Kan Varnish cache også brukes som en lastbalanser og mye mer.

Sjekk den offisielle dokumentasjonen her for å lære mer Om Lakk og andre fantastiske konfigurasjoner som kan utføres ved hjelp av den. Legg gjerne igjen en kommentar, et spørsmål eller et forslag i kommentarfeltet nedenfor.

Del din mening i kommentarfeltet. KOMMENTER nå

Del Denne Artikkelen

Kunde Gjennomgang på

«Cloudways hosting har en av de beste kundeservice og hosting hastighet»

Sanjit C

Olususi K Oluyemi

en tech entusiast, programmering freak og en webutvikling junkie som elsker å omfavne ny teknologi.

Få Koblet på: Twitter Community Forum

Legg igjen en kommentar Avbryt svar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

Siste innlegg

  • Ikke-Metallisk Gull Og Maleri Tålmodighet
  • Enkle Måter Å Lage Kake Pops uten Mugg
  • Olje Palm Dyrking (Palmeolje) Guide
  • Glemt iPod Nano Passord
  • Å Leve Med Anorexia Nervosa
  • Google SketchUp Pro 2022 Sprekk 21.0.339
  • Dreven Motor Vibrasjon-Årsaker Og Løsninger
  • slik åpner du stp-fil i autocad?
  • Dia de los Muertos Mask
  • Opprette En Peyote Bezel
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Arkiv

  • mars 2022
  • februar 2022
  • januar 2022
  • desember 2021
  • november 2021
  • oktober 2021
  • september 2021

Meta

  • Logg inn
  • Innleggsstrøm
  • Kommentarstrøm
  • WordPress.org
© 2022 WCFV | Powered by Superbs Personal Blog theme