Wie löscht man den Cache von Nginx?

Veröffentlicht 27. August 2024

Problem: Ansammlung des Nginx-Caches

Nginx, ein gängiger Webserver und Reverse-Proxy, nutzt Caching zur Leistungsverbesserung. Mit der Zeit kann dieser Cache alte oder unnötige Daten ansammeln. Diese Anhäufung kann zu langsameren Antwortzeiten, erhöhter Festplattennutzung und möglicherweise zur Auslieferung veralteter Inhalte an Benutzer führen. Das regelmäßige Löschen des Nginx-Caches ist wichtig, um eine gute Serverleistung zu erhalten und aktuelle Informationen bereitzustellen.

Lösung: Methoden zum Löschen des Nginx-Caches

Manuelles Löschen von Cache-Dateien aus dem Cache-Verzeichnis

Um den Nginx-Cache manuell zu löschen, finden Sie das Cache-Verzeichnis in Ihrer Nginx-Konfigurationsdatei. Verwenden Sie Terminal-Befehle, um die Cache-Dateien zu löschen. Zum Beispiel können Sie "rm -rf /pfad/zum/cache/*" verwenden, um alle Dateien im Cache-Ordner zu entfernen. Stoppen Sie Nginx vor dem Löschen des Caches, um Probleme zu vermeiden.

Neustart des Nginx-Servers

Ein Neustart des Nginx-Servers löscht den Cache. Unter Linux verwenden Sie "sudo systemctl restart nginx". Für macOS nutzen Sie "sudo nginx -s reload". Unter Windows starten Sie Nginx über die Dienste-Anwendung neu. Diese Methode löscht alle zwischengespeicherten Inhalte, kann aber zu Ausfallzeiten der Website führen.

Verwendung von Nginx-Konfigurationsoptionen

Verwendung der proxy_cache_bypass-Direktive

Die proxy_cache_bypass-Direktive ermöglicht es, den Cache für bestimmte Anfragen zu umgehen. Fügen Sie die Direktive zu Ihrer Nginx-Konfigurationsdatei hinzu. Zum Beispiel fügen Sie "proxy_cache_bypass $http_cache_control;" hinzu, um den Cache zu umgehen, wenn ein bestimmter Header in der Anfrage vorhanden ist.

Implementierung des Cache Purge-Moduls

Das Nginx Cache Purge-Modul ermöglicht es, bestimmte URLs aus dem Cache zu löschen. Installieren Sie das Modul und konfigurieren Sie es in Ihrer Nginx-Konfigurationsdatei. Fügen Sie einen Location-Block hinzu, um festzulegen, wie Purge-Anfragen behandelt werden sollen. Diese Methode bietet mehr Kontrolle, erfordert aber zusätzliche Einrichtung.

Fortgeschrittene Techniken zum Löschen des Nginx-Caches

Automatisierung der Cache-Löschung mit Shell-Skripten

Um die Cache-Löschung zu automatisieren, erstellen Sie ein Shell-Skript. Hier ein Beispiel:

#!/bin/bash
rm -rf /pfad/zum/nginx/cache/*
nginx -s reload

Speichern Sie dieses Skript mit einer .sh-Erweiterung und machen Sie es mit dem chmod-Befehl ausführbar.

Um Cache-Löschaufgaben zu planen, verwenden Sie den Cron-Job-Planer. Öffnen Sie die Crontab-Datei mit:

crontab -e

Fügen Sie eine Zeile hinzu, um Ihr Skript zu festgelegten Zeiten auszuführen. Um beispielsweise den Cache täglich um Mitternacht zu löschen:

0 0 * * * /pfad/zu/ihrem/skript.sh

Implementierung von Cache-Control-Headern

Cache-Control-Header helfen bei der Verwaltung der Inhaltszwischenspeicherung. Fügen Sie diese Header in Ihrer Nginx-Konfiguration hinzu:

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

Dieses Beispiel legt fest, dass Inhalte eine Stunde lang öffentlich zwischengespeichert werden können.

Andere nützliche Cache-Control-Direktiven sind:

  • no-cache: Erfordert eine Validierung vor der Verwendung zwischengespeicherter Inhalte
  • no-store: Verhindert die Zwischenspeicherung sensibler Informationen
  • must-revalidate: Prüft vor der Verwendung, ob zwischengespeicherte Inhalte noch gültig sind

Passen Sie diese Header entsprechend Ihren Caching-Anforderungen an.