Konfigurera lack
[Avvikande cacheminne] är en webbprogramaccelerator med öppen källkod (kallas även HTTP-accelerator eller cachelagring av HTTP-proxy). I Finish lagras (eller cachelagrar) filer eller fragment av filer i minnet, vilket gör att Varnish kan minska svarstiden och bandbreddsanvändningen för framtida, likvärdiga begäranden. Till skillnad från webbservrar som Apache och nginx har Varnish utformats för att endast användas med HTTP-protokollet.
Systemkrav visar vilka versioner av engelska som stöds.
Mer information om lack finns i:
- [Den stora svartvita bilden]
- [Alternativ för avslutad start]
- [Prestanda för lack och webbplats]
Topologidiagram för lack
Följande bild visar en grundläggande vy av lack i din Commerce topologi.
I föregående bild resulterar användarens HTTP-begäran över Internet i många begäranden om CSS, HTML, JavaScript och bilder (kallas tillsammans resurser). Finska sitter framför webbservern och proxiderar dessa begäranden till webbservern.
Efterhand som webbservern returnerar resurser lagras cachelagrade resurser i svenska. Efterföljande förfrågningar om dessa resurser besvaras av Varnish (vilket innebär att förfrågningarna inte når webbservern). Finska returnerar cachelagrat innehåll extremt snabbt. Resultatet blir snabbare svarstider för att skicka tillbaka innehållet till användarna och ett reducerat antal förfrågningar som måste uppfyllas av Commerce.
Assets som cachas av Varnish förfaller vid ett konfigurerbart intervall eller ersätts av senare versioner av samma resurser. Du kan även rensa cachen manuellt med hjälp av Admin eller kommandot magento cache:clean
.
Processöversikt
I det här avsnittet beskrivs hur du initialt installerar Varnish med en minimal uppsättning parametrar och testar att det fungerar. Exportera sedan en lack-konfiguration från Commerce Admin och testa den igen.
Processen kan sammanfattas enligt följande:
-
Installera Varnish och testa det genom att gå till en Commerce-sida för att se om du får HTTP-svarshuvuden som anger att Varnish fungerar.
-
Installera Commerce och använd administratören för att skapa en lack-konfigurationsfil.
-
Ersätt den befintliga konfigurationsfilen för lack med den som genererats av administratören.
-
Testa allting igen.
Om det inte finns något i katalogen
<magento_root>/var/page_cache
har du konfigurerat Varnish med Commerce!
-
Förutom där det anges måste du ange alla kommandon som beskrivs i det här avsnittet som en användare med
root
-behörighet. -
Det här avsnittet är skrivet för lack i CentOS och Apache 2.4. Om du konfigurerar lack i en annan miljö kan vissa kommandon vara annorlunda. Mer information finns i dokumentationen för Varnish.
Kända fel
Vi känner till följande problem med Varnish:
-
[lack stöder inte SSL]
Alternativt kan du använda SSL-avslutning eller en SSL-avslutningsproxy.
-
Om du tar bort innehållet i katalogen
<magento_root>/var/cache
manuellt måste du starta om lack. -
Möjligt fel vid installation av Commerce:
code language-none Error 503 Service Unavailable Service Unavailable XID: 303394517 Varnish cache server
Om det här felet uppstår redigerar du
default.vcl
och lägger till en timeout ibackend
-instansen enligt följande:code language-conf backend default { .host = "127.0.0.1"; .port = "8080"; .first_byte_timeout = 600s; }
Översikt över cachning i lack
Cachelagring i lack fungerar med Commerce:
nginx.conf.sample
från GitHub-databasen Magento 2.htaccess
distribuerad konfigurationsfil för Apache som tillhandahålls med Commercedefault.vcl
-konfiguration för lack genererad med Admin
På den första webbläsarbegäran levereras cachelagrade resurser till klientwebbläsaren från Varnish och cachelagras i webbläsaren.
Dessutom används en enhetstagg (ETag) för statiska resurser i lack. Med ETag kan du avgöra när statiska filer ändras på servern. Detta innebär att statiska resurser skickas till klienten när de ändras på servern, antingen på en ny begäran från en webbläsare eller när klienten uppdaterar webbläsarens cache, vanligtvis genom att trycka på F5 eller Ctrl+F5.
Mer information finns i följande avsnitt.
Cachelagring efter webbläsarbegäran
I det här avsnittet används en webbläsarkontroll för att visa hur resurser levereras till webbläsaren i den första begäran och sedan läses in från den lokala webbläsarcachen.
Första webbläsarbegäran
nginx.conf.sample
och .htaccess
innehåller alternativ för klientcachelagring. När den första begäran görs från en webbläsare för ett cachelagrat objekt, skickar Varnish den till klienten.
I bilden nedan visas ett exempel med en webbläsarkontroll:
I exemplet ovan visas en begäran för huvudsidan för butiken (m2_ce_my
). CSS- och JavaScript-resurser cachelagras i klientwebbläsaren.
Andra webbläsarbegäran
Om samma webbläsare begär samma sida igen levereras dessa resurser från den lokala webbläsarcachen, vilket visas i följande bild.
Observera skillnaden i svarstid mellan den första och den andra begäran. Även här har statiska resurser en 200-svarskod (OK) eftersom de levereras från det lokala cacheminnet för första gången.
Hur Commerce använder Etag
I följande exempel visas svarshuvuden för en viss statisk resurs.
calendar.css
har ett ETag-svarshuvud, vilket innebär att CSS-filen i klientwebbläsaren kan jämföras med den på servern.
Dessutom returneras statiska resurser med en HTTP-statuskod på 304 (inte ändrad), vilket visas i bilden nedan.
304-statuskoden inträffar eftersom användaren ogiltigförklarade sin lokala cache och innehållet på servern inte ändrades. På grund av 304-statuskoden överförs inte den statiska resursen content; bara HTTP-huvuden hämtas till webbläsaren.
Om innehållet ändras på servern hämtar klienten den statiska resursen med en HTTP 200-statuskod (OK) och en ny ETag.