Varnish configureren
[ Varnish Geheime voorgeheugen ] is een open-bron de toepassingsaccelerator van het Web (die ook als a wordt bedoeld de accelerator van HTTP of caching de omgekeerde volmacht van HTTP). Varnish slaat (of geheime voorgeheugens) dossiers of fragmenten van dossiers in geheugen op, die Varnish toelaat om de reactietijd en het verbruik van de netwerkbandbreedte op toekomstige, gelijkwaardige verzoeken te verminderen. In tegenstelling tot webservers als Apache en nginx, werd Varnish uitsluitend ontworpen voor gebruik met het HTTP-protocol.
de vereisten van het Systeemmaakt een lijst van de gesteunde versies van Varnish.
Zie voor meer informatie over Varnish:
- [ het Grote Vierige Beeld ]
- [ Varnish startopties ]
- [ Varnish en de Prestaties van de Website ]
Varnish topologiediagram
Het volgende cijfer toont een basismening van Varnish in uw topologie van Commerce.
In het voorafgaande cijfer, resulteren de verzoeken van HTTP van gebruikers over Internet in talrijke verzoeken om CSS, HTML, JavaScript, en beelden (die collectief als worden bedoeld activa). Varnish bevindt zich vóór de webserver en verzendt deze aanvragen bij de webserver.
Wanneer de webserver elementen retourneert, worden cacheable elementen in het Varnish opgeslagen. Elke volgende aanvraag voor deze elementen wordt door Varnish ingewilligd (de aanvragen bereiken dus niet de webserver). Varnish retourneert bijzonder snel inhoud in de cache. De resultaten zijn snellere reactietijden om de inhoud aan gebruikers en een verminderd aantal verzoeken terug te keren die door Commerce moeten worden vervuld.
Assets in cache geplaatst door Varnish verloopt met een configureerbaar interval of wordt vervangen door nieuwere versies van dezelfde elementen. U kunt de cache ook handmatig wissen met de opdracht Admin of magento cache:clean
.
Procesoverzicht
Dit onderwerp bespreekt hoe te om Varnish met een minimale reeks parameters aanvankelijk te installeren en te testen dat het werkt. Vervolgens exporteert u een vernis-configuratie vanuit de Commerce-beheerder en test u deze opnieuw.
Het proces kan als volgt worden samengevat:
-
Installeer Varnish en test het door tot om het even welke pagina van Commerce toegang te hebben om te zien of krijgt u de antwoordkopballen van HTTP die erop wijzen Varnish werkt.
-
Installeer de Commerce-software en gebruik Admin om een Varnish-configuratiebestand te maken.
-
Vervang het bestaande Varnish-configuratiebestand door het bestand dat door de beheerder is gegenereerd.
-
Test alles opnieuw.
Als er niets in uw
<magento_root>/var/page_cache
folder is, hebt u met succes Varnish met Commerce gevormd!
-
Behalve waar genoteerd, moet u alle bevelen ingaan die in dit onderwerp als gebruiker met
root
voorrechten worden besproken. -
Dit onderwerp is geschreven voor Varnish op CentOS en Apache 2.4. Als u Varnish in een verschillende omgeving instelt, kunnen sommige opdrachten anders zijn. Raadpleeg de documentatie bij Varnish voor meer informatie.
Bekende problemen
We kennen de volgende kwesties met Varnish:
-
[ Varnish steunt geen SSL ]
Als alternatief, gebruiksSSL beëindiging of een SSL beëindigingsvolmacht.
-
Als u de inhoud van de map
<magento_root>/var/cache
handmatig verwijdert, moet u Varnish opnieuw starten. -
Mogelijke fout bij het installeren van Commerce:
code language-none Error 503 Service Unavailable Service Unavailable XID: 303394517 Varnish cache server
Als deze fout optreedt, bewerkt u
default.vcl
en voegt u als volgt een time-out toe aan debackend
stanza:code language-conf backend default { .host = "127.0.0.1"; .port = "8080"; .first_byte_timeout = 600s; }
Overzicht van het in cache plaatsen van Varnish
Varnish caching werkt met Commerce met behulp van:
nginx.conf.sample
van Magento 2 de bewaarplaats van GitHub.htaccess
gedistribueerd configuratiebestand voor Apache dat bij Commerce wordt geleverddefault.vcl
configuratie voor Varnish produceerde gebruikend Admin
Op het eerste browser verzoek, worden de cacheable activa geleverd aan cliëntbrowser van Varnish en caching op browser.
Daarnaast gebruikt Varnish een eenheidtag (ETag) voor statische activa. Met ETag kunt u bepalen wanneer statische bestanden op de server veranderen. Hierdoor worden statische elementen naar de client verzonden wanneer deze op de server worden gewijzigd. Dit kan op een nieuw verzoek van een browser of wanneer de client het cachegeheugen van de browser vernieuwt, meestal door op F5 of Control+F5 te drukken.
De volgende secties bevatten meer details.
Caching door browser request
In deze sectie wordt een browsercontrole gebruikt om te tonen hoe elementen in de eerste aanvraag aan de browser worden geleverd en vervolgens uit de lokale browsercache worden geladen.
Eerste browserverzoek
nginx.conf.sample
en .htaccess
bieden opties voor het in cache plaatsen van clients. Wanneer het eerste verzoek van browser voor een cacheable voorwerp wordt gemaakt, levert Varnish het aan de cliënt.
In de volgende afbeelding ziet u een voorbeeld met een browsercontrole:
Het voorgaande voorbeeld toont een verzoek om de hoofdpagina van de storefront (m2_ce_my
). CSS- en JavaScript-elementen worden in cache geplaatst in de clientbrowser.
Tweede browserverzoek
Als dezelfde browser dezelfde pagina opnieuw opvraagt, worden deze elementen geleverd vanuit de lokale browsercache, zoals in de volgende afbeelding wordt getoond.
Let op het verschil in responstijd tussen het eerste en het tweede verzoek. Ook hier hebben statische elementen een antwoordcode van 200 (OK), omdat ze voor het eerst worden geleverd via de lokale cache.
Hoe Commerce Etag gebruikt
In het volgende voorbeeld worden responsheaders voor een bepaald statisch element weergegeven.
calendar.css
heeft een ETag- antwoordkopbal wat betekent het CSS dossier op cliëntbrowser kan worden vergeleken met die op de server.
Daarnaast worden statische elementen geretourneerd met de HTTP-statuscode 304 (Niet gewijzigd), zoals in de volgende afbeelding wordt getoond.
is
De 304-statuscode treedt op omdat de gebruiker de lokale cache ongeldig heeft gemaakt en de inhoud op de server niet is gewijzigd. Wegens de 304 statuscode, wordt de statische activa inhoud niet overgebracht; slechts worden de kopballen van HTTP gedownload aan browser.
Als de inhoud op de server verandert, downloadt de client het statische element met een HTTP 200 (OK)-statuscode en een nieuwe ETag.