Ga naar inhoud

WCFV

Analytics Blog

Menu
Menu

Varnish-Cache configureren en de laadtijd van uw toepassing 10x sneller te versnellen

Gepubliceerd op maart 2, 2022 door admin
varnish-cache

ongeacht de grootte en complexiteit van uw toepassing, zullen gebruikers er de voorkeur aan geven om te blijven of terug te komen als ze genieten van de snelheid waarmee de dynamische inhoud van uw toepassing wordt weergegeven. Verbeterde prestaties, snelle paginalevering en snelle serverrespons zijn ook enkele van de weinige factoren die gebruikers verslaafd houden aan uw applicatie.

deze en nog veel meer zijn de bijdragende factoren voor elke succesvolle en populaire webapplicatie. Hoewel er verschillende technieken en strategieën beschikbaar zijn om moderne webapplicaties te versnellen, is het uitvoeren van caching veel waardevoller gebleken.

elk verzoek naar een bepaalde pagina op uw website communiceert direct en krijgt reacties van uw server. Dus elke keer dat een gebruiker een bepaalde pagina bezoekt, maakt uw front-end een HTTP-oproep om de juiste inhoud op te halen en uw server is gebonden om dienovereenkomstig te reageren.

voor een kleinschalige webtoepassing is dit misschien niet te veel, maar zodra uw toepassing begint te schalen, zal een groot aantal verzoeken aan uw webserver geleidelijk te veel worden om te verwerken. Dit wordt vaak beschouwd als een onnodige overbelasting.

het aanbieden van een webpagina neemt veel resources in beslag-vooral als het dynamisch wordt gegenereerd zoals die via PHP worden aangemaakt. Daarom, in deze Varnish cache tutorial, zal ik u laten zien hoe u de snelheid van uw PHP applicatie te verhogen zonder per se schalen verticaal of horizontaal, maar met behulp van Varnish.

Wat is Varnish Cache en waarom het te gebruiken

Varnish cache is een webapplicatie accelerator ook bekend als caching HTTP reverse proxy. Het werkt meer als een tussenpersoon tussen uw client (dwz gebruiker) en uw webserver. Dat betekent dat, in plaats van uw webserver om direct te luisteren naar verzoeken van specifieke inhoud de hele tijd, Varnish zal de verantwoordelijkheid op zich nemen.

zodra een verzoek voor de eerste keer binnenkomt, zal Varnish in PHP het naar de webserver sturen voor een passend antwoord. Dit antwoord zal door Varnish in PHP gecached worden voordat het naar de client gestuurd wordt. Interessant is dat elke volgende aanvraag voor dergelijke inhoud zal gewoon worden geserveerd rechtstreeks vanuit de Varnish cache in plaats van rechtstreeks naar de webserver. Met deze in de plaats, uw webapplicatie in staat zal zijn om een groot aantal gelijktijdige verzoeken van verschillende gebruikers te beheren als de server zal niet eens worden gestart. Dit zal resulteren in een magische verhoging van de prestaties voor uw toepassing.

PHP Varnish gebruikt Varnish Configuration Language (VCL) om het gedrag van varnish aan te passen door logica toe te voegen om aanvragen te manipuleren. U kunt reacties die terugkomen van de webserver manipuleren, cookies verwijderen of kopteksten toevoegen aan het antwoord.

Varnish workflow

Get / some-web-page — client) – → Cache- → Get /some-web – page (Server) — → Cache – → terug naar client.

varnish cache workflow

varnish cache workflow

laten we aannemen dat het eerste verzoek naar de pagina ongeveer 200ms duurt.

zodra de inhoud van een dergelijke pagina volledig is gecached, verandert de stroom volledig en zal het verzoek van de client naar dezelfde pagina niet meer direct op de server worden gericht, omdat Varnish het al eerder heeft gecached. Neem een kijkje op de onderstaande afbeelding:

GET / some-web-page (client) – → Cache (HIT). — > en terug naar de client

een volgend verzoek naar de pagina 10ms…..

Awesome right?

daarom is het idee om het aantal verzoeken dat naar uw backend server wordt verzonden zoveel mogelijk te verminderen. Dit zal in ruil verhogen pagina rendering snelheid voor uw webapplicatie.

aan de slag met Varnish configuratie

nu u verder bent gegaan met de basis introductie van Varnish en zijn caching mogelijkheden, is het tijd om Varnish te configureren en te gebruiken voor een PHP applicatie. Aan de slag met Varnish is eenvoudig. Om goed in te stellen, zullen we een bestaande applicatie van GitHub gebruiken en Pullen en implementeren naar de DigitalOcean server. Daarna zullen we Varnish configureren.

vervolgens, Maak een GRATIS account op DigitalOcean, en zodra u dat hebt voltooid, klikt u op de” Create “knop, en in de dropdown selecteert u” Droplets ” om een nieuwe droplet aan te maken.

Scroll naar beneden om Ubuntu 16.04 te selecteren en merk op dat u de grootte van een druppel moet selecteren, de kleinste grootte moet volstaan voor deze varnish cache tutorial.

Scroll naar beneden om een SSH-sleutel toe te voegen, als u die hebt. Dit zal u helpen om eenvoudig in te loggen op de server later, anders moet u uw inbox controleren op het standaard wachtwoord voor uw druppel. Voeg vervolgens een hostnaam toe. Ik heb mijn varnish-demo genoemd. Klik nu op maken om te beginnen met het maken van de druppel.

zodra het proces is voltooid, ziet u de nieuwe druppel in de lijst met druppels. Ga je gang en voeg SSH toe aan je druppel met behulp van het IP-adres.

maak je klaar voor Core web Vitals Update

Ebook om uw Website te versnellen voordat u verkeer begint te verliezen.

Dank u

uw lijst is onderweg naar uw Postvak In.

Nginx-webserver installeren

u kunt nu de pakketlijst bijwerken en Nginx installeren. Voer de volgende opdracht uit om dat uit te voeren:

sudo apt updatesudo apt install -y nginx
  • opmerking: – y-vlag is om te reageren met een standaard antwoord op elke vraag die wordt gesteld tijdens de installatie

op Ubuntu 16.04, Nginx is vooraf geconfigureerd om te starten bij de installatie, dus zodra de installatie is voltooid, kunt u het IP-adres van uw druppel in de browser bezoeken:

http://server_domain_or_ip

Pull demo van de GitHub

Ik zal Git gebruiken om het voorbeeld project van GitHub te trekken, het komt vooraf geà nstalleerd met Ubuntu 16.04. Om te controleren of het al op uw server is geïnstalleerd of niet, gebruik je het onderstaande commando:

git -v

als je een bericht krijgt dat Git niet standaard geïnstalleerd is, dan zul je het volgende commando moeten uitvoeren om het te installeren:

apt install -y git

vervolgens moet u dezelfde map gebruiken die de standaardpagina voor de Nginx-webserver bevat, dus navigeer naar de openbare map:

cd / var / www

verwijder de html-map, maak deze opnieuw en verplaats deze naar de html-map:

rm -rf htmlmkdir htmlcd html

clone nu de repository

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

met dit op zijn plaats, heb je nu een voorbeeld project geà nstalleerd op je server. Maar het zal niet toegankelijk zijn voor nu, en dat is omdat we PHP niet hebben geà nstalleerd. Laten we dat doen.

u vindt het Misschien Ook Leuk: Memcached gebruiken met PHP

PHP installeren en Nginx configureren om de PHP Processor

Nginx bevat geen native PHP processing zoals sommige andere webservers. We zullen een software met de naam php-fpm installeren en Nginx instrueren om alle PHP verzoeken aan het door te geven. Navigeer terug naar de root directory van uw webserver en voer het volgende commando uit om de PHP-FPM module te installeren:

$ cd ~$ sudo apt install php-fpm

zodra het installatieproces is voltooid, kunt u Nginx nu configureren om de geïnstalleerde PHP processor te gebruiken. Open het standaard Nginx-serverblok-configuratiebestand met:

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

en de inhoud te vervangen door:

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

als u klaar bent, herlaad Nginx om de nodige wijzigingen aan te brengen:

$ sudo systemctl reload nginx

nu kunt u de pagina in uw favoriete webserver bezoeken met behulp van het IP-adres van uw druppel.:

http://ip_address

caching inschakelen met Varnish

als u de pagina inspecteert om de HTTP-headers te bekijken op het tabblad Netwerk, zult u geen sporen van Varnish opmerken omdat het niet is geïnstalleerd of geconfigureerd om een verzoek af te handelen. Laten we dat veranderen door Varnish op onze webserver te installeren. Om dit te doen, typt u het volgende commando:

$ sudo apt install -y varnish

dit zal gaan door het proces van het installeren van een Varnish cache op uw server. Na het voltooien van de installatie, start en activeer Varnish met:

systemctl start varnishsystemctl enable varnish

Varnish luistert standaard op poort 6081. Om dit te bevestigen, opent u uw browser en bezoekt u uw droplet IP-adres opnieuw, maar zorg er deze keer voor dat u toevoegt: 6081 zoals hieronder getoond:

Nginx, de webserver die verantwoordelijk is voor het laden van de inhoud van uw webapplicatie, draait op poort 80. Om Varnish in staat te stellen om de verantwoordelijkheid van caching en rendering van de pagina zo snel mogelijk te nemen, moet het zitten tussen uw web app client en de server. Dit zal ervoor zorgen dat elk verzoek aan uw server dat meestal op poort 80 staat, zal worden onderschept door Varnish, en afhankelijk van of het een cache hit of misser is, zal Varnish dienovereenkomstig handelen en het juiste antwoord retourneren.

Ik zal het proces veranderen door Varnish op poort 80 en Nginx op poort 8080 te configureren. Om dit te doen, bewerk je het Nginx configuratiebestand van je site opnieuw. In ons geval is dit bestand /etc/nginx/sites-available / default. Verander de 80 naar 8080:

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

poort 80 is nu vrij te gebruiken voor vernis. Herlaad uw Nginx configuratie met:

sudo systemctl reload nginx

en controleer de beschikbaarheid van uw website met behulp van uw IP-adres met poort 8080 eraan toegevoegd:

toen Varnish eerder werd geïnstalleerd, werden ook twee configuratiebestanden op de server aangemaakt. Zij zijn:

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

Ik zal deze bestanden gebruiken voor configuraties zoals het openen van een poort voor Varnish en het manipuleren van verzoeken. Open nu dit bestand /etc / default / varnish:

sudo nano /etc/default/varnish

# luister op poort 6081, administratie op localhost:6082, en doorsturen naar

# één content server geselecteerd door het VCL bestand, gebaseerd op het verzoek.

DAEMON_OPTS= ” – a :6081 \

-T localhost:6082 \

-f/etc/varnish / default.vcl \

– s/etc/varnish / secret \

-s malloc,256m”

zoek naar de bovenstaande regel en verander de-a :6081 in-a :80.

open vervolgens het bestand/etc/varnish / default.vcl:

sudo nano /etc/varnish/default.vcl

en controleer of de standaard backend is ingesteld op poort 8080, want dit is waar Nginx vanaf nu dient. Kijk voor de lijn hieronder en zorg ervoor dat de .poort is 8080.

# standaard backend-definitie. Stel dit in om naar uw contentserver te wijzen.

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

het volgende is om de varnish te kopiëren.service bestand naar onze systemd directory. Hierdoor kan systemd Varnish starten op poort 80. Voer onderstaande opdracht uit:

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

dit zal het Varnish-servicebestand kopiëren.

volgende, openen:

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

en zoek naar de ExecStart lijn:

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

verander nu de-F-A: 6081 naar-F-a :80. Sla het bestand op en sluit het af.

als u de netwerkstatistieken controleert met het netstat Commando:

:~# 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 :::* LISTEN 1648/SSHD

u zult merken dat Varnish cache nog steeds draait op poort 6081. Verander dat door Varnish opnieuw op te starten:

systemctl daemon-reloadsystemctl restart varnish

en herstart ook Nginx.

sudo service nginx restart

op dit moment, als u het IP-adres van uw webpagina bezoekt, zult u merken dat de website nog steeds perfect werkt, maar het inspecteren van de HTTP-header zal aangeven dat Varnish is geïnstalleerd en actief is.

Dit Vind Je Misschien Ook Leuk: Integreer PHP Opcache & maak uw applicatie groot met Performance

een overzicht van Varnish internal

Varnish activeert een aantal routines tijdens het voltooien van de verwerking van de caching-inhoud van uw webapplicatie. Laten we eens een kijkje nemen op een aantal van de belangrijkste routines, en wat elk doet om ervoor te zorgen dat de inhoud worden geleverd met de snelheid van het licht die op zijn beurt zal de prestaties van uw webapplicatie te verbeteren:

  • sub vcl_recv {}: Dit is de eerste regel die Varnish zal raken op het moment dat uw client een verzoek accepteert.
  • sub vcl_backend_response {}: deze callback wordt aangeroepen na het antwoord en is opgehaald van de backend server. U kunt ook wijzigingen aanbrengen in de reactie hier in dit blok.
  • sub vcl_backend_fetch {}:
  • sub vcl_deliver {}: dit is de laatste routine die VCL zal gebruiken voordat een antwoord naar de client wordt verzonden. Hier, kunt u gemakkelijk doen sommige opschonen, zoals het verwijderen van wat dat je niet wilt dat de client te zien en ga zo maar door.

vraag: hoe vernis cache verwijderen?

A: U kunt alle Varnish-cache van de commandoregel verwijderen met het commando ban:
varnishadm ” ban.URL .”# Komt overeen met alle URL ‘ s
u kunt ook bepaalde caches verbieden door de hostnaam te beschrijven:
varnishadm “ban req.http.host == xxx.com ”

Q: Hoe Varnish-cache uitschakelen?

A: U kunt Varnish eenvoudig uitschakelen van uw website door de.htaccess bestand met de volgende code:
Header voeg “Cache-Control “toe”no-cache”
dit zal Varnish tijdelijk uitschakelen van uw website. U kunt later Varnish inschakelen door de volgende code te verwijderen.

Q: Hoe vernis cache verwijderen met CLI?

A: U kunt de Varnish-cache wissen of verwijderen door de Varnish-service opnieuw op te starten. Dit zal alle cache van de Varnish verwijderen omdat deze standaard in het geheugen is opgeslagen:
/etc / varnish restart
of
service varnish restart

Q: Hoe controleer ik of de cache van de Varnish werkt of niet?

A: om te controleren of uw Varnish service goed werkt of niet, gebruikt u de X-Varnish header die u de actieve/niet-actieve status van de service laat weten. Om meer in detail te kijken of het de cache raakt, gebruik je de X-Cache header om een volledige analyse van caches te krijgen.

Q: Varnish cache vs Memcached: welke is beter?

A: beide Varnish & Memcached zijn nuttig in het bijzonder caching domeinen, er zijn echter enkele verschillen tussen de twee.
u kunt Memcached gebruiken als een in-memory, gedistribueerde backend voor caching-applicaties.
terwijl Varnish wordt gebruikt als een reverse-proxy voor extern cacheprogramma ‘ s voor HTTP-aanvragen.
Memcached kan worden aangeduid als het algemene caching systeem omdat het Resultaten uit de database cacht en weinig veranderingen in de GET methode vereist.
terwijl Varnish achter de webserver werkt, webpagina ‘ s cacht en geen wijzigingen in code vereist.

Laatste Woorden

in dit bericht, Ik heb nauwelijks bekrast de oppervlakte van wat je kunt doen met Varnish. Het is zo krachtig dat je er veel meer mee kunt doen. Naast de mogelijkheid om de inhoud van uw webapplicatie in de cache te zetten en verzoeken af te handelen, kan Varnish cache ook worden gebruikt als load balancer en nog veel meer.

controleer de officiële documentatie hier voor meer informatie over Varnish en andere geweldige configuraties die kunnen worden uitgevoerd met behulp van het. Voel je vrij om een reactie, vraag of suggestie achter te laten in de commentaarsectie hieronder.

deel uw mening in de sectie commentaar. COMMENTAAR NU

Share Dit Artikel

Customer Review op

“Cloudways hosting is één van de beste service en hosting snelheid”

Sanjit C

Olususi k Oluyemi

Een tech enthusiast, programmering freak en een ontwikkeling van het web junkie die houdt van te omarmen nieuwe technologie.

verbinding maken op: Twitter Community Forum

Geef een antwoord Reactie annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Recente berichten

  • niet-Metallic goud en schilderen geduld
  • Eenvoudige manieren om Cake Pops te maken zonder mal
  • Guide
  • wachtwoord voor iPod Nano
  • leven met Anorexia Nervosa
  • Google SketchUp Pro 2022 Crack 21.0.339
  • overmatige trilling van de motor van de motorfiets – oorzaken en oplossingen
  • hoe stp-bestand openen in autocad?
  • Dia De los Muertos Mask
  • Een peyote-Bezel aanmaken
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어

Archieven

  • maart 2022
  • februari 2022
  • januari 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021

Meta

  • Inloggen
  • Berichten feed
  • Reacties feed
  • WordPress.org
© J WCFV | Aangedreven door Superbs Persoonlijk blog thema