
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.

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
$ cd ~$ sudo apt install php-fpm
når installationen er afsluttet, kan du nu konfigurere
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 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.