Het Configureren van de Cache-Control Headers in Apache

0
52

Elke gebruiker de browser maakt gebruik van een ingebouwde cache voor het opslaan van gedownloade objecten, die aanzienlijk kunnen versnellen herhaalde bezoeken aan uw website door het laden van schijf eerder dan de op het netwerk. Hier is hoe het te configureren in Apache.

Hoe Werkt Caching Werk?

De eerste keer dat een gebruiker een verbinding maakt met uw site, zij zullen het downloaden van alle statische middelen die nodig zijn voor het renderen van de pagina, waaronder o.a. uw logo. Wanneer ze naar een nieuwe pagina wordt geladen van uw logo uit het geheugen liever dan te vragen voor het weer, waardoor prestaties aanzienlijk verbeteren en vermindering van de belasting op uw web server in het proces.

Dit is een client-side cache, maar veel sites zal ook gebruik maken van een Content Delivery Network, of CDN. Een CDN is een netwerk van servers die zitten in de voorkant van uw web server, of “oorsprong” server. Dit netwerk, slaat uw pagina ‘ s, het verhogen van uw maximale bandbreedte, waardoor de toegang tot de latentie en de sterk verminderen van de stress op je origin server. Als u zou willen leren van meer over Cdn ‘ s, kunt u lezen in onze handleiding hier op ze.

De Cache-Control header die u kunt configureren van uw web server toevoegen aan alle uitgaande verzoeken, vertelt de browser en Cdn ‘ s hoe de cache van uw inhoud.

Bepaalde pagina ‘s mogen nooit worden opgeslagen door gedeelde cache Cdn’ s zoals. Hierdoor zal het risico weergeven van een gebruiker persoonlijke gegevens niet aan anderen. Als algemene regel geldt, als de pagina zal in de toekomst worden de exacte hetzelfde voor alle gebruikers, zoals uw home pagina, kunt u de cache. Als het toont vertrouwelijke gebruikersgegevens, wil je op de blacklist van uw cache. Statische bronnen, zoals CSS en afbeeldingen, kunnen meestal worden opgeslagen voor iedereen, vaak veel langer.

De hoeveelheid tijd die het object door te brengen in de cache is ook belangrijk. Aangeduid als de Time-To-Live (TTL), de maximale leeftijd van uw cache middelen bepaalt hoe lang het object zal blijven in de cache voordat ze ongeldig gemaakt en de gebruiker vraagt om een nieuw object. Voor statische resources die niet veel veranderen, kunt u zeer hoge TTL-waarden, meestal rond de twee jaar. Voor dingen die je misschien wilt bijwerken, zult u wilt instellen lagere TTL-waarden om te voorkomen dat oude bronnen wordt in de cache te lang.

U kunt altijd gebruik maken van versiebeheer bestandsnamen om te leiden tot een cache herladen. Als u een nieuwe versie van een CSS style sheet, kunt u de naam van het stijlen-1.0.1.css, en de browser van de gebruiker (en eventuele Cdn ‘ s in de voorkant van het) zien het als een nieuw bestand dat moet worden redownloaded. Daarnaast zijn er voor sommige Cdn ‘ s, kunt u het probleem handmatig invalidations voor het doorspoelen van de bestaande cache zonder het wijzigen van bestandsnamen.

Hoe te Gebruiken Cache-Control in Apache

De Cache-Control heeft een paar opties:

  • openbaar – worden opgeslagen door iedereen, met inbegrip van browsers en Cdn ‘ s. Gebruik dit voor de meeste statische objecten.
  • privé – Bevat gevoelige gegevens die niet kunnen worden opgeslagen door Cdn ‘s of reverse proxy’ s. De browser van de gebruiker kan de cache van het lokaal. Gebruik dit voor de meeste geverifieerde pagina ‘ s.
  • no-cache – Ondanks de naam, is het geen caching uitschakelen. De browser kan nog steeds cache van de reactie voor de prestaties, maar moet controleren met de oorspronkelijke server voor updates voordat u deze gebruikt. Gebruik deze optie als u wilt dat de gebruiker geldigmaking elke keer.
  • no-store – Zet caching volledig. Gebruik dit alleen voor zeer gevoelige gegevens die niet mogen worden verzonden tweemaal.

Bovendien kunt u de geen-transformeren richtlijn, die schakelt alle conversies die kunnen worden gedaan om de bron. Bijvoorbeeld, sommige Cdn ‘ s comprimeren van afbeeldingen de bandbreedte beperken. Deze richtlijn schakelt dat gedrag.

In Apache, zult u hebben om deze header handmatig met behulp van de Koptekst ingesteld richtlijn, zoals:

Header ‘ Cache-Control “max-age=84600, openbare”

De max-age waarde is ingesteld in seconden, bijvoorbeeld, max-age=300 voor een vijf-minuten-TTL, – en max-age=63072000 voor twee jaar.

U kunt deze richtlijn in de root van uw configuratie toe te passen voor de hele site, maar een betere methode is om de instellingen toe te passen, afhankelijk van het type bestand. Bijvoorbeeld het instellen van een hoge TTL voor de meeste statische media, u kunt gebruik maken van een FilesMatch blok:

<FilesMatch “.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$”>
Header ‘ Cache-Control “max-age=63072000, openbare”
</FilesMatch>

Als u wilt op de blacklist een specifiek pad in de cache wordt opgeslagen door Cdn ‘ s, kunt u gebruik maken van een Directory blok:

<Directory “/privé”>
Header ‘ Cache-Control “max-age=300, privé”
</Map>

Of gewoon zoeken op een enkel bestand:

<Bestand “protected.html”>
Header ‘ Cache-Control “max-age=300, privé”
</File>

De blokken met de meer specifieke wedstrijden hebben voorrang op de algemene regex, maar je wilt om te controleren of alles is goed ingesteld op het ontvangende einde. U kunt dit controleren vanaf Chrome DevTools onder Netwerk > Headers.

Als u alleen toegang hebben .htaccess-configuratie kunt u nog steeds gebruik maken van map matching door het creëren van een nieuwe .htaccess-bestand in elke submap.

Gebruik Surrogaat-Besturingselement Wijzigen CDN Gedrag Direct

De Surrogaat-Control header functioneert precies zoals ‘Cache-Control’, maar details de specifieke instructies voor Cdn ‘s en omgekeerde proxy’ s, in plaats van de eindgebruiker. Op deze manier kunt u vertellen Cdn ‘ s om één ding te doen, maar de verschillende richtingen naar de browser.

U zal hebben om deze header handmatig, op dezelfde manier als u een Cache-Control:

Header ingesteld Surrogaat-Control “max-age=300, openbare”

U zult zeker wilt testen met uw CDN om te verifiëren dat dit werkt—Surrogaat-Control is vrij nieuw, en is niet universeel.