Zum Inhalt

WordPress Cache-Purging auf cPanel EA4

Sofortige, automatische Cache-Invalidierung für WordPress—ohne den gesamten Cache zu leeren.

🎉 Kostenloser Zugang - Begrenzte Zeit!

Alle EA4-Module sind derzeit kostenlos — kein Abonnement erforderlich! Erfahren Sie mehr


  • Automatische Invalidierung


    Der Cache wird automatisch geleert, wenn Sie Beiträge, Seiten oder Kommentare bearbeiten—keine manuelle Intervention erforderlich

  • Chirurgische Präzision


    Nur die geänderte Seite wird geleert—Ihre gesamte Website bleibt im Cache und blitzschnell

  • Multi-Tenant-Sicher


    Der Cache jedes cPanel-Benutzers ist isoliert—Benutzer können nicht die Inhalte anderer Benutzer leeren

  • Kein Coding erforderlich


    Funktioniert sofort mit dem Proxy Cache Purge WordPress-Plugin


5-Minuten-Setup

Befolgen Sie diese Schritte, um intelligentes Cache-Purging auf Ihrem cPanel-Server zu aktivieren.


Schritt 1: Installieren Sie das Cache-Purge-Modul

# Installieren Sie das GetPageSpeed-Repository (aktiviert automatisch das ea4-Repo auf cPanel-Servern)
dnf -y install https://extras.getpagespeed.com/release-latest.rpm

# Installieren Sie das Cache-Purge-Modul
dnf -y install ea-nginx-cache-purge

Schritt 2: NGINX konfigurieren

Sie können das Cache-Purging global für alle Benutzer oder pro Benutzer aktivieren.

Erstellen Sie /etc/nginx/conf.d/server-includes/cache-purge.conf:

# Aktivieren Sie die PURGE-Methode für das Cache-Purging (alle Benutzer)
proxy_cache_purge PURGE from 127.0.0.1;

Diese Datei wird automatisch in alle cPanel-Benutzer-Serverblöcke aufgenommen.

Für den Benutzer username, erstellen Sie /etc/nginx/conf.d/users/username/cache-purge.conf:

# Aktivieren Sie die PURGE-Methode für das Cache-Purging
proxy_cache_purge PURGE from 127.0.0.1;

Nachdem Sie die Konfiguration erstellt haben, laden Sie NGINX neu:

nginx -t && systemctl reload nginx

Schritt 3: Installieren Sie das Proxy Cache Purge Plugin

  1. Gehen Sie zu Plugins → Neu hinzufügen
  2. Suchen Sie nach "Proxy Cache Purge" (Slug: varnish-http-purge)
  3. Klicken Sie auf Jetzt installieren, dann auf Aktivieren
wp plugin install varnish-http-purge --activate

Schritt 4: Konfigurieren Sie Proxy Cache Purge

Im WordPress-Admin:

  1. Gehen Sie zu Einstellungen → Proxy Cache Purge
  2. Setzen Sie "Benutzerdefinierte IP festlegen" auf: 127.0.0.1
  3. Klicken Sie auf Einstellungen speichern

Kritische Einstellung

Das Plugin muss PURGE-Anfragen an 127.0.0.1 (localhost) senden, nicht an Ihre öffentliche IP oder Domain.


Schritt 5: NGINX Cache-Backend konfigurieren

Beginnend mit Proxy Cache Purge 5.9.0 unterstützt das Plugin nativ das Wildcard-Purge-Format von NGINX. Konfigurieren Sie es, um das NGINX-Backend zu verwenden:

  1. Gehen Sie zu Proxy Cache Purge → Einstellungen
  2. Wählen Sie unter Cache-Backend NGINX
  3. Klicken Sie auf Einstellungen speichern

Fügen Sie zu Ihrer wp-config.php hinzu:

define( 'VHP_PURGE_BACKEND', 'nginx' );

Dies stellt sicher, dass beim Leeren einer Seite alle zwischengespeicherten Varianten (gzip, brotli, unkomprimiert) gelöscht werden.

Legacy: Plugin-Version < 5.9.0

Wenn Sie Proxy Cache Purge in einer Version älter als 5.9.0 verwenden, erstellen Sie wp-content/mu-plugins/nginx-cache-purge-fix.php:

<?php
/**
 * Plugin Name: NGINX Cache Purge Fix
 * Description: Fügt Wildcard zu den zu löschenden URLs für die Kompatibilität mit dem Vary-Header hinzu
 */
add_filter("vhp_purgeme_path", function($purgeme, $schema, $host, $path, $pregex, $p) {
    if (empty($pregex)) {
        $purgeme .= "*";
    }
    return $purgeme;
}, 10, 6);

Testen Sie das Setup

# 1. Cachen Sie eine Seite (erste Anfrage = MISS, zweite = HIT)
curl -sI http://127.0.0.1/sample-page/ -H 'Host: yourdomain.com' -H 'Accept-Encoding: gzip' | grep X-Cache
# X-Cache-Status: MISS
curl -sI http://127.0.0.1/sample-page/ -H 'Host: yourdomain.com' -H 'Accept-Encoding: gzip' | grep X-Cache
# X-Cache-Status: HIT

# 2. Leeren Sie mit der PURGE-Methode und Wildcard
curl -sX PURGE 'http://127.0.0.1/sample-page/*' -H 'Host: yourdomain.com'
# <h1>Erfolgreiches Leeren</h1>

# 3. Überprüfen Sie, ob der Cache geleert wurde
curl -sI http://127.0.0.1/sample-page/ -H 'Host: yourdomain.com' -H 'Accept-Encoding: gzip' | grep X-Cache
# X-Cache-Status: MISS

Testen Sie dann über WordPress:

  1. Bearbeiten Sie einen veröffentlichten Beitrag
  2. Nehmen Sie eine Änderung vor und klicken Sie auf Aktualisieren
  3. Das Plugin leert automatisch den Cache
  4. Besuchen Sie die Seite—sie sollte frische Inhalte anzeigen

So funktioniert es

flowchart TD
    subgraph WordPress["<b>WordPress</b>"]
        A[📝 Beitrag aktualisiert] --> B["🔌 Proxy Cache Purge Plugin"]
        B --> C["PURGE http://127.0.0.1/post-slug/*<br/>Host: yourdomain.com"]
    end

    C --> D

    subgraph NGINX["<b>NGINX (ea-nginx)</b>"]
        D["🔒 proxy_cache_purge PURGE from 127.0.0.1"] --> E["🗑️ ngx_cache_purge Modul"]
        E --> F["✓ Wildcard entspricht allen Varianten<br/>(gzip, brotli, plain)"]
        F --> G["✓ Löscht aus dem Festplattencache"]
        G --> H["✅ Gibt 'Erfolgreiches Leeren' zurück"]
    end

    style WordPress fill:#4a90d9,stroke:#2d5986,color:#fff
    style NGINX fill:#009639,stroke:#006325,color:#fff
    style A fill:#5ba0e0
    style B fill:#5ba0e0
    style C fill:#5ba0e0
    style D fill:#00a844
    style E fill:#00a844
    style F fill:#00a844
    style G fill:#00a844
    style H fill:#00a844

Was passiert

  1. Sie aktualisieren einen Beitrag in WordPress
  2. Das Plugin sendet eine PURGE-Anfrage an localhost
  3. Das NGINX-Modul entfernt nur diese URL aus dem Cache
  4. Der nächste Besucher erhält frische Inhalte, der Rest des Caches bleibt unberührt

Warum es schnell ist

  • Kein vollständiges Cache-Leeren — andere Seiten bleiben im Cache
  • Nur lokale Anfragen — keine Netzwerkverzögerung
  • Wildcard-Unterstützung — löscht alle Kodierungsvarianten auf einmal

Fortgeschritten: Reduzieren Sie Cache-Varianten

Optionale Optimierung

Empfohlen für stark frequentierte Seiten, um die Cache-Trefferquote zu maximieren.

Der Header Vary: Accept-Encoding verursacht, dass NGINX separate Cache-Einträge für verschiedene Accept-Encoding-Kombinationen erstellt. Browser senden diese in verschiedenen Reihenfolgen, was zu Cache-Bloat führt:

Original Accept-Encoding Problem
gzip, br, deflate Separater Cache-Eintrag
br, gzip Ein weiterer separater Eintrag
gzip, deflate Noch ein weiterer Eintrag

Die Lösung: Header normalisieren

Das Modul compression-normalize normalisiert Header auf konsistente Werte:

dnf -y install ea-nginx-compression-normalize

Erstellen Sie /etc/nginx/conf.d/compression-normalize.conf:

# Normalisieren Sie Accept-Encoding, um Cache-Varianten zu reduzieren
# Prioritätsreihenfolge: Bevorzugen Sie brotli, dann gzip
compression_normalize_accept_encoding br,gzip br gzip;

Ergebnis: Hunderte möglicher Varianten → nur 3 (br,gzip, br, gzip).


Sicherheit

Nur localhost-Zugriff

proxy_cache_purge PURGE from 127.0.0.1;

Externe PURGE-Anfragen werden als normale Anfragen verarbeitet, nicht als Leeren.

Benutzerisolation

Jeder cPanel-Benutzer hat seine eigene Cache-Zone. Benutzer alice kann den Cache von Benutzer bob nicht leeren—auch nicht mit denselben URL-Pfaden.


Fehlersuche

Cache wird nicht geleert
  1. Überprüfen Sie die Plugin-Einstellung:
  2. Gehen Sie zu Einstellungen → Proxy Cache Purge
  3. Stellen Sie sicher, dass Benutzerdefinierte IP auf 127.0.0.1 gesetzt ist

  4. Überprüfen Sie die Cache-Backend-Einstellung:

  5. Gehen Sie zu Proxy Cache Purge → Einstellungen und überprüfen Sie, ob Cache-Backend auf NGINX gesetzt ist
  6. Oder überprüfen Sie, ob wp-config.php define( 'VHP_PURGE_BACKEND', 'nginx' ); enthält

  7. Überprüfen Sie, ob die NGINX-Konfiguration geladen ist:

    nginx -T | grep cache_purge
    

412 Precondition Failed

Das bedeutet, dass die URL nicht im Cache war. Kein Fehler—einfach nichts zu leeren.

Modul wird nicht geladen
# Überprüfen Sie, ob installiert
rpm -q ea-nginx-cache-purge

# Überprüfen Sie die Moduldatei
ls -la /etc/nginx/modules/ngx_http_cache_purge_module.so

Verwandt

  • cPanel EA4 Repository


    Vollständige Einrichtungsanleitung für cPanels ea-nginx-Module

    Erfahren Sie mehr

  • cache-purge Modul


    Vollständige Direktivenreferenz und erweiterte Nutzung

    Dokumentation

  • Proxy Cache Purge Plugin


    Offizielle WordPress-Plugin-Seite

    WordPress.org