
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 – →

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