Hoe de Cache van Nginx Legen?

Gepubliceerd 30 juni 2024

Probleem: Nginx Cache Ophoping

Nginx, een veelgebruikte webserver en reverse proxy, gebruikt caching om de prestaties te verbeteren. Na verloop van tijd kan deze cache oude of overbodige gegevens verzamelen. Deze ophoping kan leiden tot tragere responstijden, meer schijfgebruik en mogelijk het leveren van oude inhoud aan gebruikers. Het regelmatig wissen van de Nginx cache is belangrijk om goede serverprestaties te behouden en actuele informatie te bieden.

Oplossing: Methoden om Nginx Cache te Wissen

Handmatig Verwijderen van Cachebestanden uit de Cache Directory

Om de Nginx cache handmatig te wissen, zoek de cache directory in uw Nginx configuratiebestand. Gebruik terminal commando's om de cachebestanden te verwijderen. Gebruik bijvoorbeeld "rm -rf /path/to/cache/*" om alle bestanden in de cache map te verwijderen. Stop Nginx voordat u de cache wist om problemen te voorkomen.

Het Herstarten van de Nginx Server

Het herstarten van de Nginx server wist de cache. Op Linux, gebruik "sudo systemctl restart nginx". Voor macOS, gebruik "sudo nginx -s reload". Op Windows, herstart Nginx via de Services applicatie. Deze methode wist alle gecachte inhoud maar kan website downtime veroorzaken.

Gebruik van Nginx Configuratie Opties

Gebruik van proxy_cache_bypass Directive

De proxy_cache_bypass directive laat u de cache omzeilen voor specifieke verzoeken. Voeg de directive toe aan uw Nginx configuratiebestand. Voeg bijvoorbeeld "proxy_cache_bypass $http_cache_control;" toe om de cache te omzeilen wanneer een specifieke header in het verzoek aanwezig is.

Implementeren van Cache Purge Module

De Nginx Cache Purge module stelt u in staat om specifieke URL's uit de cache te wissen. Installeer de module en configureer deze vervolgens in uw Nginx configuratiebestand. Voeg een location block toe om te definiëren hoe purge verzoeken moeten worden afgehandeld. Deze methode biedt meer controle maar vereist extra setup.

Geavanceerde Technieken voor het Wissen van Nginx Cache

Automatiseren van Cache Wissen met Shell Scripts

Om het wissen van de cache te automatiseren, maak een shell script. Hier is een voorbeeld:

#!/bin/bash
rm -rf /path/to/nginx/cache/*
nginx -s reload

Bewaar dit script met een .sh extensie en maak het uitvoerbaar met behulp van het chmod commando.

Om cache wissen taken in te plannen, gebruik de cron job scheduler. Open het crontab bestand met:

crontab -e

Voeg een regel toe om uw script op vaste tijden uit te voeren. Om bijvoorbeeld de cache dagelijks om middernacht te wissen:

0 0 * * * /path/to/your/script.sh

Implementeren van Cache Control Headers

Cache-Control headers helpen bij het beheren van hoe inhoud wordt gecachet. Voeg deze headers toe in uw Nginx configuratie:

location / {
    add_header Cache-Control "public, max-age=3600";
}

Dit voorbeeld stelt inhoud in om publiekelijk cachebaar te zijn voor één uur.

Andere nuttige Cache-Control directives zijn:

  • no-cache: Vereist validatie voordat gecachte inhoud wordt gebruikt
  • no-store: Voorkomt caching van gevoelige informatie
  • must-revalidate: Controleert of gecachte inhoud nog geldig is voordat deze wordt gebruikt

Pas deze headers aan op basis van uw caching behoeften.