Skip to content

WCFV

Analytics Blog

Menu
Menu

Konfigurer Varnish Cache og fremskynde din applikations indlæsningstid 10 gange hurtigere

Posted on marts 2, 2022 by admin
varnish cache

uanset størrelsen og kompleksiteten af din applikation foretrækker brugerne at blive eller fortsætte med at komme tilbage, hvis de nyder den hastighed, hvormed det dynamiske indhold fra din applikation gengives. Forbedret ydeevne, hurtig side levering, og hurtig server respons er også nogle af de få faktorer, der holder brugerne hooked til din ansøgning.

disse og mange flere er de medvirkende faktorer for enhver vellykket og populær internetapplikation. Mens der er flere teknikker og strategier til rådighed for at hjælpe med at fremskynde moderne internetapplikationer, har det vist sig at være meget mere værdifuldt at udføre caching.

hver anmodning til en bestemt side på din hjemmeside kommunikerer direkte og får svar fra din server. Så hver gang en bruger besøger en bestemt side, foretager din front-end et HTTP-opkald for at hente det relevante indhold, og din server er forpligtet til at svare i overensstemmelse hermed.

for en lille internetapplikation er dette måske ikke for meget, men når din applikation begynder at skalere, vil et stort antal anmodninger til din internetserver gradvist begynde at blive for meget at håndtere. Dette betragtes ofte som en unødvendig overbelastning.

servering af en hjemmeside tager mange ressourcer – især når den genereres dynamisk som dem, der oprettes via PHP. Derfor vil jeg i denne lak cache-tutorial vise dig, hvordan du øger hastigheden på din PHP-applikation uden nødvendigvis at skalere lodret eller vandret, men ved hjælp af lak.

Hvad er lak Cache og hvorfor bruge det

lak cache er en internet applikation accelerator også kendt som caching HTTP omvendt fuldmagt. Det fungerer mere som en mellemmand mellem din klient (dvs.bruger) og din internetserver. Det betyder, at i stedet for din server til direkte at lytte til anmodninger om specifikke indhold hele tiden, vil lak påtage sig ansvaret.

når en anmodning kommer ind for første gang, vil lak i PHP lede den til internetserveren for et passende svar. Dette svar vil blive cachelagret af lak i PHP, før det sendes til klienten. Interessant nok vil enhver efterfølgende anmodning om sådant indhold bare blive serveret direkte fra Lakcachen i stedet for at gå direkte til internetserveren. Med dette på plads vil din internetapplikation være i stand til at styre et stort antal samtidige anmodninger fra flere brugere, da serveren ikke engang vil blive startet. Dette vil resultere i en magisk stigning i ydeevnen til din applikation.

PHP Varnish bruger Varnish Configuration Language (VCL) for at give dig mulighed for at ændre dens adfærd ved at tilføje logik til at manipulere anmodninger. Du kan manipulere svar, der kommer tilbage fra internetserveren, fjerne cookies eller tilføje overskrifter til svaret.

Varnish arbejdsproces

få /nogle-hjemmeside-side (klient) — kart Cache – Kart Get /nogle-hjemmeside (Server)-Kart Cache – Kart tilbage til klient.

varnish cache arbejdsgang

varnish cache arbejdsgang

lad os antage, at den første anmodning til siden tager omkring 200ms.

når først cachelagringen af indholdet på en sådan side er fuldstændigt, ændres strømmen fuldstændigt, og anmodningen fra klienten til den samme side rammer ikke serveren direkte igen, fordi lak allerede har cachelagret den tidligere. Tag et kig på illustrationen nedenfor:

GET /some-hjemmeside (klient)-Kurt Cache (HIT) . — > og tilbage til klienten

en efterfølgende anmodning til siden 10ms…..

fantastisk rigtigt?

derfor er ideen at reducere antallet af anmodninger, der sendes til din backend-server så meget som muligt. Dette vil til gengæld øge sidegengivelseshastigheden for din internetapplikation.

Kom godt i gang med Lakkonfiguration

nu, som du er gået videre med den grundlæggende introduktion af lak og dens cachingfunktioner, er det tid til nu at konfigurere lak og bruge den til en PHP-applikation. Det er nemt at komme i gang med lak. For at konfigurere korrekt bruger og trækker vi en eksisterende applikation fra GitHub og implementerer den til DigitalOcean-serveren. Derefter konfigurerer vi lak.

opret derefter en gratis konto på DigitalOcean, og når du har afsluttet det, skal du klikke på knappen “Opret” og fra rullemenuen vælge “dråber” for at oprette en ny dråbe.

Rul ned for at vælge Ubuntu 16.04, og bemærk, at du skal vælge størrelsen på en dråbe, den mindste størrelse skal være tilstrækkelig til denne tutorial til lakcache.

Rul ned for at tilføje en SSH-nøgle, hvis du har en. Dette hjælper dig med nemt at logge ind på serveren senere, ellers skal du kontrollere din indbakke for standardadgangskoden til din dråbe. Tilføj derefter et værtsnavn. Jeg har navngivet mine lak-demo. Klik nu på Opret for at begynde at oprette dråben.

når processen er afsluttet, vil du se den nye dråbe på listen over dråber. Gå videre og tilføj SSH i din dråbe ved hjælp af IP-adressen.

gør dig klar til Core Vitals opdatering

Ebook at fremskynde din hjemmeside, før du begynder at miste trafik.

Tak

din liste er på vej til din indbakke.

installer Ngink server

du kan nu opdatere pakkelisten og installere Ngink. Kør følgende kommando for at udføre det:

sudo apt updatesudo apt install -y nginx
  • Bemærk: – y flag er at svare med et standard svar på ethvert spørgsmål, der stilles under installationen

på Ubuntu 16.04 er Ngink forudkonfigureret til at begynde at køre ved installationen, så når installationen er afsluttet, kan du besøge IP-adressen på din dråbe i:

http://server_domain_or_ip

træk demo fra GitHub

jeg vil bruge Git til at trække prøveprojektet fra GitHub, det kommer forudinstalleret med Ubuntu 16.04. For at kontrollere, om den allerede er installeret på din server eller ej, skal du bruge nedenstående kommando:

git -v

hvis du får en besked om, at Git ikke er installeret som standard, skal du køre følgende kommando for at installere den:

apt install -y git

derefter skal du bruge den samme mappe, der huser standardsiden for Netserveren, så Naviger til den offentlige mappe:

cd/var / første gang

Fjern html-mappen, genskab den og flyt ind i den:

rm -rf htmlmkdir htmlcd html

klon nu depotet

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

med dette på plads har du nu et eksempelprojekt installeret på din server. Men det vil ikke være tilgængeligt for nu, og det er fordi vi ikke har installeret PHP. Lad os gøre det.

du vil måske også synes om: brug af Memcached med PHP

installation af PHP og konfiguration af Ngink til at bruge PHP-processoren

Ngink indeholder ikke indbygget PHP-behandling som nogle andre internetservere. Vi vil installere et program ved navn php-fpm og instruere at videregive alle PHP anmodninger til det. Naviger tilbage til rodmappen på din internetserver, og kør følgende kommando for at installere PHP-FPM-modulet:

$ cd ~$ sudo apt install php-fpm

når installationen er afsluttet, kan du nu konfigurere til at bruge den installerede PHP-processor. Åbn standardkonfigurationsfilen for serverblokering med:

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

erstatte indholdet 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 færdig, skal du genindlæse Ngink for at foretage de nødvendige ændringer:

$ sudo systemctl reload nginx

nu Kan du besøge siden i din foretrukne internetserver ved hjælp af din dråbes IP-adresse:

http://ip_address

aktivering af caching ved hjælp af lak

hvis du inspicerer siden for at se HTTP-overskrifterne fra fanen Netværk, vil du ikke bemærke spor af lak, fordi den ikke er installeret eller konfigureret til at håndtere enhver anmodning. Lad os ændre det ved at installere Varnish på vores internetserver. For at gøre dette skal du skrive følgende kommando:

$ sudo apt install -y varnish

dette gennemgår processen med at installere en Lakcache på din server. Når installationen er afsluttet, skal du starte og aktivere lak med:

systemctl start varnishsystemctl enable varnish

Lær som standard lytter på port 6081. Denne gang skal du sørge for at tilføje:6081 som vist nedenfor:

Ngink, som er den internetserver, der er ansvarlig for at indlæse indholdet af din internetapplikation, kører på port 80. For at gøre det muligt for LAK at tage ansvaret for caching og gengivelse af siden så hurtigt som muligt, skal den sidde mellem din app-klient og serveren. Dette vil sikre, at enhver anmodning til din server, som for det meste vil være på port 80, vil blive opfanget af lak, og afhængigt af om det er et cache hit eller miss, vil lak handle på det i overensstemmelse hermed og returnere det relevante svar.

jeg vil ændre processen ved at konfigurere lak på port 80 og Nginks på port 8080. For at gøre dette skal du redigere din sides konfigurationsfil igen. I vores tilfælde er denne fil /etc/nginks / sites-tilgængelig / standard. Skift 80 til 8080:

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

Port 80 vil nu være gratis at bruge til lak. Genindlæs din konfiguration med:

sudo systemctl reload nginx

og kontroller tilgængeligheden af din hjemmeside ved hjælp af din IP-adresse med port 8080 vedhæftet den:

da Varnish blev installeret tidligere, blev der også oprettet to konfigurationsfiler på serveren. De er:

  • /etc / default / lak
  • /etc/lak/default.vcl

jeg vil bruge disse filer til konfigurationer såsom at åbne en port til lak og manipulere anmodninger. Åbn nu denne fil / etc / default / varnish:

sudo nano /etc/default/varnish

# Lyt til port 6081, administration på localhost:6082, og videresend til

# en indholdsserver valgt af VCL-filen, baseret på anmodningen.

DAEMON_OPTS= ” – en :6081 \

-T localhost:6082 \

-f / etc / lak / standard.vcl \

– s / etc/lak / hemmelighed \

-s malloc,256M”

se efter linjen ovenfor og skift-a :6081 til-a :80.

åbn derefter filen /etc/varnish/default.vcl:

sudo nano /etc/varnish/default.vcl

og kontroller, at standard backend er indstillet til port 8080, fordi det er her, Ngink tjener fra nu. Se efter linjen nedenfor, og sørg for, at .havnen er 8080.

# standard backend definition. Indstil dette til at pege på din indholdsserver.

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

den næste ting er at kopiere lakken.service fil til vores systemd mappe. Dette gør det muligt for systemd at starte lak på port 80. Kør kommandoen nedenfor:

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

dette kopierer Lakservicefilen.

næste, åbn den:

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

og se efter Eksekveringslinjen:

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

skift nu-F – A :6081 til-F-A: 80. Gem og afslut filen.

hvis du tjekker netværksstatistikken ved hjælp af 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 :::* Lyt 1648 / sshd

du vil bemærke, at Lak cache stadig kører på port 6081. Skift det ved at genstarte lak:

systemctl daemon-reloadsystemctl restart varnish

og genstart også Ngink.

sudo service nginx restart

i øjeblikket, hvis du besøger IP-adressen på din hjemmeside, vil du bemærke, at hjemmesiden stadig fungerer perfekt, men inspektion af HTTP-overskriften vil indikere, at lak er installeret og kører.

Du Kan Også Lide: Integrer PHP Opcache & få din applikation til at vinde STORT med ydeevne

en oversigt over lak intern

lak udløser et par rutiner under afslutningen af behandlingen af cacheindholdet i din internetapplikation. Lad os se på nogle af de vigtigste rutiner, og hvad hver enkelt gør for at sikre, at indholdet leveres med lysets hastighed, hvilket igen vil forbedre ydeevnen for din internetapplikation:

  • sub vcl_recv {}: dette er den første linje, som lak rammer i det øjeblik din klient accepterer en anmodning.
  • sub vcl_backend_response {}: denne tilbagekald kaldes efter svar og er hentet fra backend-serveren. Du kan også foretage ændringer til svaret her i denne blok.
  • sub vcl_backend_fetch {}:
  • sub vcl_deliver {}: dette er den sidste rutine, som VCL vil ramme, før du sender et svar til klienten. Her kan du nemt gøre nogle oprydninger, som at fjerne det, du ikke vil have klienten til at se og så videre.

spørgsmål: Sådan ryddes Lakcache?

A: Du kan rense al Lakcache fra kommandolinjen ved hjælp af forbudskommandoen:
varnishadm “forbud.URL .”#Matcher alle URL ‘ er
du kan også forbyde bestemte cacher ved at beskrive værtsnavnet:
varnishadm “ban krav.http.vært == xxx.com ”

spørgsmål: Sådan deaktiveres lak cache?

en: du kan nemt deaktivere lak fra din hjemmeside ved at redigere .htaccess-fil med følgende kode:
Header Tilføj “Cache-Control” “no-cache”
dette vil midlertidigt deaktivere lak fra din hjemmeside. Du kan senere aktivere lak ved at fjerne følgende kode.

e: Sådan renses lak cache med CLI?

A: Du kan rydde eller rense Lakcachen ved blot at genstarte Laktjenesten. Dette vil rense al Lakcachen, fordi den er gemt i hukommelsen som standard:
/etc/Varn genstart
eller
service Varn genstart

spørgsmål: Sådan kontrolleres, om Lakcachen fungerer eller ej?

A: for at kontrollere, om din Lakservice fungerer fint eller ej, skal du bruge header, som fortæller dig den aktive/ikke-aktive tilstand af tjenesten. For at se mere detaljeret, om det rammer cachen, skal du bruge header-cachen til at få en komplet analyse af cacher.

spørgsmål: Varnish cache vs Memcached: hvilken er bedre?

A: begge lak & Memcached er nyttige især caching domæner, men der er nogle forskelle mellem de to.
du kan bruge Memcached som en in-memory, distribueret backend til caching applikationer Aktiver.
mens lak bruges som en omvendt fuldmagt til eksternt cache applikationens HTTP-anmodninger.
Memcached kan betegnes som det generelle caching-system, da det cacher resultater fra databasen og kræver små ændringer i GET-metoden.
mens lak fungerer bag internetserveren, cacher hjemmesider og ikke kræver ændringer i kode.

afsluttende ord

i dette indlæg har jeg næppe ridset overfladen af, hvad du kan gøre med lak. Det er så magtfuldt, at du kan gøre meget mere med det. Bortset fra at være i stand til at cache indholdet af din internetapplikation og håndtere anmodninger, kan Lak cache også bruges som en belastningsbalancer og meget mere.

Tjek den officielle dokumentation her for at lære mere om Lak og andre fantastiske konfigurationer, der kan udføres ved hjælp af den. Du er velkommen til at efterlade en kommentar, spørgsmål, eller forslag i kommentarfeltet nedenfor.

Del din mening i kommentarfeltet. Kommentar Nu

del denne artikel

kundeanmeldelse på

“hosting har en af de bedste kundeservice og hosting hastighed”

Sanjit C

Olususi k Oluyemi

en tech entusiast, programmering freak og en internet udvikling junkie, der elsker at omfavne ny teknologi.

få forbindelse på: kvidre Community Forum

Skriv et svar Annuller svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Seneste indlæg

  • ikke-metallisk guld og maleri tålmodighed
  • Nemme måder at lave Cake Pops uden en skimmel
  • Oliepalmedyrkning (Palmeolie) Vejledning
  • glemt iPod Nano-adgangskode
  • at leve med anoreksi Nervosa
  • Google SketchUp Pro 2022 knæk 21.0.339
  • overdreven Motorcykelmotorvibration – årsager og løsninger
  • Sådan åbnes stp-fil i autocad?
  • Dia de los Muertos maske
  • Oprettelse af en Peyote-ramme
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Arkiver

  • marts 2022
  • februar 2022
  • januar 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Meta

  • Log ind
  • Indlægsfeed
  • Kommentarfeed
  • WordPress.org
© 2022 WCFV | Powered by Superbs Personal Blog theme