So richten Sie den Nginx FastCGI Cache unter Ubuntu ein

Nginx FastCGI Cache steigert die Leistung Ihrer Website, indem es die Belastung Ihres Ubuntu-Servers reduziert. Dies ist besonders effektiv für dynamische Inhalte, da Nginx zwischengespeicherte Inhalte direkt bereitstellen kann, ohne PHP-Prozessoren zu verwenden. Dies beschleunigt die Reaktionszeit und senkt den Ressourcenverbrauch. Hier sind die wichtigsten Funktionen und Vorteile von Nginx FastCGI Cache für Ihre Web-Infrastruktur:

  • Effiziente Bereitstellung von Inhalten: Der Nginx FastCGI Cache speichert die dynamische Inhaltsausgabe und ermöglicht so einen schnelleren Zugriff und eine schnellere Verteilung.
  • Reduzierte Serverlast: Durch die Bereitstellung zwischengespeicherter Inhalte wird die Anzahl der PHP-Aufrufe minimiert und die Serverlast verringert.
  • Skalierbarkeit: Nginx FastCGI Cache hilft dabei, den erhöhten Datenverkehr zu bewältigen, ohne die Geschwindigkeit zu beeinträchtigen, während Ihre Website wächst.
  • Anpassbares Caching: Diese Option bietet Flexibilität bei der Festlegung der Cache-Ablauf-, Umgehungs- und Aktualisierungsbedingungen entsprechend Ihren Anforderungen.
  • Verbesserte Benutzererfahrung: Schnellere Website-Ladezeiten verbessern das Benutzererlebnis und wirken sich positiv auf die Besucherbindung und das SEO-Ranking aus.
  • Ressourcenoptimierung: Optimiert die Nutzung der Serverressourcen und führt so zu einer effizienteren Bearbeitung gleichzeitiger Anfragen.
  • Einfaches Debuggen: Bietet unkomplizierte Mechanismen zum Debuggen und Validieren zwischengespeicherter Inhalte und gewährleistet so einen reibungslosen Betrieb.
  • Kompatibilität: Funktioniert nahtlos mit beliebten CMS-Plattformen und verbessert deren Leistung ohne umfangreiche Konfiguration.

Wenn wir uns nun mit der technischen Anleitung befassen, denken Sie daran, dass die Implementierung von Nginx FastCGI Cache eine strategische Möglichkeit ist, die Effizienz Ihrer Website und die Benutzerzufriedenheit zu verbessern. Beginnen wir mit der Verbesserung der Leistung Ihrer Website mit Nginx FastCGI Cache.

Nginx FastCGI Cache einrichten

Bearbeiten der Nginx-Konfigurationsdatei für FastCGI Cache

Öffnen Sie die Konfigurationsdatei

Öffnen Sie zunächst das nginx.conf Datei. Wir verwenden den Nano-Texteditor, aber Sie können jeden beliebigen Texteditor verwenden, mit dem Sie vertraut sind. Geben Sie diesen Befehl ein:

sudo nano /etc/nginx/nginx.conf

FastCGI-Parameter konfigurieren

Suchen Sie in der Datei den HTTP-Block und fügen Sie die folgenden Zeilen hinzu:

fastcgi_cache_path /var/nginx/fastcgi_cache levels=1:2 keys_zone=fcgicache:150m max_size=20g inactive=60m use_temp_path=off;
fastcgi_cache_key "$scheme$request_method$host$request_uri";

Nach Eingabe der Zeilen drücken Sie CTRL + O, Typ Yund drücken Sie dann CTRL + X beenden.

Verstehen Sie die FastCGI-Parameter

  • fastcgi_cache_path: Dieser Parameter legt den Speicherort für den FastCGI-Cache fest (/var/nginx/fastcgi_cache). Dies ist wichtig, da es bestimmt, wo der zwischengespeicherte Inhalt gespeichert wird.
  • levels=1:2: Dadurch wird unter Ihrem Cache-Speicherort eine zweistufige Verzeichnishierarchie erstellt. Dieses Design hilft dabei, Dateien auf zwei Verzeichnisse zu verteilen, was wiederum das Risiko von Festplatten-E/A-Engpässen verringert.
  • keys_zone: Gibt den Namen der gemeinsam genutzten Speicherzone an (fcgicache) und seine Größe (150M). Die gemeinsam genutzte Speicherzone ist für die Speicherung von Cache-Schlüsseln und Metadaten von entscheidender Bedeutung.
  • max_size: Hiermit wird die maximale Größe des Caches definiert (in diesem Beispiel 20GB). Wenn dieses Limit erreicht ist, werden die ältesten Dateien entfernt, um Platz für neue zu schaffen.
  • inactive: Hiermit geben Sie die Dauer an, nach der Daten, auf die nicht zugegriffen wurde, aus dem Cache entfernt werden. In diesem Beispiel ist der Wert auf 60 Minuten eingestellt.
  • use_temp_path: Einstellung auf off weist Nginx an, Dateien direkt in den angegebenen Cache-Ordner zu schreiben und dabei die Verwendung eines temporären Speicherbereichs zu umgehen.
  • fastcgi_cache_key: Wird verwendet, um den Schlüssel für die Cache-Suche zu definieren. Nginx erstellt einen MD5-Hash dieses Schlüssels, der als Name für Cache-Dateien verwendet wird.

Konfigurieren Sie den Nginx-Serverblock für den FastCGI-Cache

Server-Blockdatei bearbeiten

Als nächstes müssen Sie Ihre Serverblockdatei bearbeiten. Für dieses Beispiel nehmen wir an, dass die Datei den Namen hat example.com.conf. Öffnen Sie es mit dem folgenden Befehl:

sudo nano /etc/nginx/sites-available/example.com.conf

FastCGI-Cache-Direktiven einfügen

Vorausgesetzt, Sie haben LEMP installiert, fügen Sie die folgenden Zeilen in den Speicherortblock für PHP-Dateien ein:

fastcgi_cache fcgicache;
fastcgi_cache_valid 200 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;
add_header X-FastCGI-Cache $upstream_cache_status;

Verstehen Sie die FastCGI-Cache-Direktiven

  • fastcgi_cache: Aktiviert das Caching und gibt die zuvor definierte gemeinsam genutzte Speicherzone an.
  • fastcgi_cache_valid: Definiert die Cache-Dauer für bestimmte HTTP-Statuscodes.
  • fastcgi_cache_use_stale: Legt Bedingungen fest, unter denen Nginx eine veraltete zwischengespeicherte Antwort verwenden kann.
  • fastcgi_cache_min_uses: Gibt an, wie oft eine Antwort angefordert werden muss, bevor sie zwischengespeichert wird.
  • fastcgi_cache_lock: Stellt sicher, dass immer nur eine Anforderung gleichzeitig ein neues Cache-Element füllt, und verhindert so einen „Cache-Ansturm“.
  • add_header: Fügt eine benutzerdefinierte Kopfzeile hinzu (X-FastCGI-Cache) an die HTTP-Antwort an, um anzugeben, ob die Antwort aus dem Cache bereitgestellt wurde.

Konfigurieren Sie FastCGI Cache Purge auf Nginx

Einrichten der Cachebereinigung

Mit der Cache-Bereinigung können Sie Inhalte aus dem Cache entfernen, bevor sie ablaufen. Um die Cache-Bereinigung zu konfigurieren, erstellen Sie eine Cache-Bereinigungsanweisung, indem Sie die folgenden Zeilen in Ihre Serverblockdatei einfügen:

location ~ /purge(/.*) {
    # Uncomment the following two lines to allow purge only from the webserver
    allow 127.0.0.1;
    deny all;
    fastcgi_cache_purge fcgicache "$scheme$request_method$host$1";
}

Drücken Sie CTRL + O, Typ Yund drücken Sie dann CTRL + X , um den Texteditor zu verlassen.

Alternativer Ansatz für Probleme beim Leeren des Cache

Wenn Sie Probleme mit der Cache-Bereinigung haben, können Sie stattdessen die Ablaufzeit des Caches anpassen. Für Websites mit mittlerem bis hohem Datenverkehr ist es oft effizienter, eine niedrigere Ablaufrate festzulegen, z. B. 2 Stunden inaktiv und 4 Stunden für den Gesamtablauf.

Testen und Neustarten des Nginx-Servers

Testen der Konfiguration

Es ist wichtig, die Nginx-Konfiguration zu validieren, um Syntaxfehler oder Fehlkonfigurationen zu vermeiden. Verwenden Sie den folgenden Befehl:

sudo nginx -t

Wenn alles korrekt ist, sollten Sie die folgende Ausgabe sehen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Starten Sie den Nginx-Server neu

Starten Sie abschließend den Nginx-Server neu, um die vorgenommenen Änderungen anzuwenden:

sudo systemctl restart nginx

Erstellen und Optimieren des Nginx FastCGI-Cache-Verzeichnisses

FastCGI-Cache-Verzeichnis erstellen

Erstellen wir nun das Verzeichnis, in dem Nginx die Cache-Dateien speichern wird. Dieser Pfad wurde zuvor in der nginx.conf Datei:

sudo mkdir -p /var/nginx/fastcgi_cache

Optimieren Sie das Cache-Verzeichnis mit tmpfs (optional)

Wenn Ihr System über genügend RAM verfügt, können Sie tmpfs um den Cache im Speicher zu speichern. Dies kann zu schnelleren Zugriffszeiten im Vergleich zur Festplattenspeicherung führen. Seien Sie jedoch vorsichtig, da die Speicherung im RAM erhebliche Speicherressourcen verbrauchen kann. So können Sie das Cache-Verzeichnis mounten als tmpfs:

Bearbeiten /etc/fstab Datei:

sudo nano /etc/fstab

Fügen Sie am Ende der Datei die folgende Zeile hinzu:

tmpfs   /var/nginx/fastcgi_cache   tmpfs   defaults,size=512M   0 0

Dadurch werden 512 MB Ihres RAM für den Cache reserviert. Sie können die Größe entsprechend Ihren Systemressourcen anpassen.

Montieren Sie die tmpfs:

sudo mount -a

Diese Konfiguration stellt sicher, dass der FastCGI-Cache im Speicher abgelegt wird und so eine schnellere Leistung auf Kosten der RAM-Auslastung bietet.

Überprüfen der Nginx FastCGI Cache-Funktionalität

Testen Sie FastCGI Cache mit curl

Sie können die ordnungsgemäße Funktion von FastCGI Cache überprüfen, indem Sie curl Befehl. Abhängig von Ihren Cacheeinstellungen müssen Sie den Befehl möglicherweise mehrmals ausführen, bevor ein Cachetreffer angezeigt wird:

curl -I http://www.your-domain.com

Wenn Sie nicht haben curl installiert ist, können Sie es mit folgendem installieren:

sudo apt install curl -y

Suchen Sie in der Ausgabe nach dem X-FastCGI-Cache: HIT Header:

~$ curl -I https://www.example.com/
HTTP/1.1 200 OK
...
X-FastCGI-Cache: HIT
...

Dies zeigt an, dass die Anforderung aus dem Cache bedient wurde.

Konfigurieren von Cache-Ausschlüssen

Website-Elemente wie WordPress-Admin-Seiten, Kommentarbereiche und Sitemaps sollten nicht zwischengespeichert werden. Um Nginx so zu konfigurieren, dass diese nicht zwischengespeichert werden, fügen Sie den folgenden Code über dem location (~\.php$) Zeile in Ihrer Server-Blockdatei:

# Cache by default
set $skip_cache 0;

# Don't cache URIs containing the following
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-..php|^/feed/|/tag/./feed/|index.php|/.sitemap..(xml|xsl)") {
    set $skip_cache 1;
}

# Don't cache for logged-in users or comment authors
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
    set $skip_cache 1;
}

# POST requests and URIs with a query string should bypass the cache
if ($request_method = POST) {
    set $skip_cache 1;
}

if ($query_string != "") {
    set $skip_cache 1;
}

Debuggen von Cache-Ausschlüssen (optional)

Wenn Sie Notizen zu Debugging-Zwecken hinzufügen möchten, können Sie unter jedem set $skip_cache 1; Aussage wie diese:

set $skip_reason "your custom note";

Dies kann hilfreich sein, um bei der Fehlerbehebung zu verstehen, warum bestimmte Inhalte nicht zwischengespeichert werden.

Nachdem Sie diese Konfigurationen vorgenommen haben, testen Sie die Konfiguration und starten Sie Nginx neu:

sudo nginx -t
sudo systemctl restart nginx

Best Practices und Überlegungen zum Nginx FastCGI Cache

Obwohl FastCGI-Caching erhebliche Leistungsvorteile bieten kann, muss unbedingt sichergestellt werden, dass die Konfiguration für Ihren spezifischen Anwendungsfall und Ihre Serverressourcen optimiert ist:

  • Bewerten Sie die verfügbare RAM-Menge, bevor Sie sich entscheiden für tmpfs zum Zwischenspeichern. Stellen Sie sicher, dass Ihr Server über genügend Speicher für andere kritische Prozesse verfügt.
  • Passen Sie die Cache-Ausnahmen an Ihre Anwendung an. Die bereitgestellten Beispiele gelten speziell für WordPress, für andere Anwendungstypen benötigen Sie jedoch möglicherweise andere Ausnahmen.
  • Überwachen Sie regelmäßig die Cache-Nutzung und -Leistung. Wenn der Cache zu viel Speicherplatz verbraucht oder die Leistung nicht wie erwartet verbessert, sollten Sie den Cache-Pfad, die Cache-Größe oder die Cache-Einstellungen entsprechend anpassen.

Abschluss

Nun, da haben Sie es! Wir haben die Schritte zur Installation von Nginx FastCGI Cache auf Ihrem Ubuntu-Server durchgegangen und bieten Ihnen eine Leistungssteigerung Ihrer Website durch die effiziente Verarbeitung dynamischer Inhalte. Denken Sie daran, dass die Beibehaltung Ihrer Cache-Einstellungen, um die Anforderungen Ihrer Website zu erfüllen, der Schlüssel zur Maximierung der Vorteile ist. Scheuen Sie sich nicht, die Einstellungen zu optimieren, um den idealen Punkt zu finden. Egal, ob Sie ein erfahrener Profi oder ein Neuling in der Serververwaltung sind, wir hoffen, dass dieser Leitfaden Ihnen bei der Optimierung Ihrer Webpräsenz eine nützliche Hilfe war. Halten Sie es einfach, bleiben Sie konsistent und freuen Sie sich auf ein schnelleres, reibungsloseres Website-Erlebnis für Sie und Ihre Besucher!

Joshua James
Folgen Sie mir
Letzte Artikel von Joshua James (Alle anzeigen)

Hinterlasse einen Kommentar