Verwendung von WP Super Cache und Jetpack Photon zur Optimierung der WordPress-Leistung unter Ubuntu 14.04

Einführung

In diesem Tutorial lernen Sie, wie Sie die Leistung von WordPress optimieren, indem Sie die Plugins WP Super Cache und Jetpack Photon sowie Nginx als Webserver verwenden. Mit diesem Setup kann Ihre WordPress-Site ihre Kapazität für gleichzeitige Benutzer erheblich steigern, indem Sie die Caching-Techniken der oben genannten Plugins nutzen.

In WP Super Cache werden Ihre WordPress-Seiten als statische HTML-Seiten zwischengespeichert, sodass Seitenanforderungen für eine bereits zwischengespeicherte Seite nicht von den WordPress-PHP-Skripten verarbeitet werden müssen. In der Regel werden die meisten Besucher Ihrer Website zwischengespeicherte Versionen der WordPress-Seiten anzeigen, sodass Ihr Server über mehr Verarbeitungsleistung verfügt, um eine größere Anzahl von Benutzern zu bedienen. Das WP Super Cache Plugin wurde von Donncha O Caoimh entwickelt.

Jetpack Photon ist ein Bildbeschleunigungsdienst, bei dem Ihre WordPress-Bilder über ein eigenes Content Delivery Network (CDN) zwischengespeichert und bereitgestellt werden. Photon ist eines der Module im Jetpack-Plugin, das vom Jetpack-Team von Automattic entwickelt wurde.

Voraussetzungen

Um diesem Tutorial zu folgen, benötigen Sie einen WordPress-Server, der Nginx als Webserver verwendet. Wenn Sie das nicht haben, können Sie diese Tutorials verwenden, um eines zu erstellen:

Plugin-Anforderungen oder Einschränkungen

WP Super Cache * funktioniert nicht * mit Plugins, die Abfrageargumente verwenden, da es nicht funktioniert, wenn Sie Abfrageargumente an Nginx übergeben. Aus diesem Grund dürfen Sie auch * nicht * die WordPress Default Permalink-Einstellungen verwenden (die WordPress-Seitenzahlen als Argumente verwenden).

Jetpack Photon Einschränkungen:

  • Sie müssen Ihre Website mit WordPress.com verbinden, um Jetpack zu aktivieren, für das ein kostenloses WordPress.com-Konto erforderlich ist

  • Ihre WordPress-Site muss Port 80 überwachen (Photon funktioniert nicht mit reinen HTTPS-Sites)

  • Sobald ein GIF-, JPG- oder PNG-Bild zwischengespeichert wurde, kann es nicht mehr aktualisiert werden. Die einzige Problemumgehung besteht darin, ein umbenanntes Bild erneut auf Ihre Site hochzuladen.

  • Bilder, deren Kopieren auf das Photon-CDN zu lange dauert (länger als 10 Sekunden), müssen umbenannt und erneut hochgeladen werden

Wenn Sie Photon nicht verwenden möchten, können Sie diesen Abschnitt des Tutorials überspringen.

Nachdem die Voraussetzungen nicht mehr gegeben sind, können Sie mit der Installation von WP Super Cache beginnen.

Installieren und konfigurieren Sie das WP Super Cache Plugin

Der erste Schritt zur Installation des WP Super Cache Plugins besteht darin, es von wordpress.org in Ihr Home-Verzeichnis herunterzuladen:

cd ~; wget http://downloads.wordpress.org/plugin/wp-super-cache.1.4.zip

Wenn Sie das unzip-Paket nicht installiert haben, tun Sie es jetzt:

sudo apt-get install unzip

Dann entpacke das WP Super Cache Plugin in dein WordPress Plugins Verzeichnis (ersetze den markierten Pfad durch deinen eigenen, falls du WordPress woanders installiert hast):

cd /wp-content/plugins
unzip ~/wp-super-cache.1.4.zip

Als nächstes ändern wir die Gruppeninhaberschaft des Plugins:

sudo chgrp -R www-data wp-super-cache

Und wir erlauben dem Plugin, in das Verzeichnis "+ wp-content " und in die Datei " wp-config.php +" zu schreiben:

chmod g+w /wp-content
chmod g+w /wp-config.php

Nachdem die WordPress-Dateien richtig eingerichtet wurden, aktivieren wir das Plugin.

Aktiviere das WP Super Cache Plugin

Melden Sie sich als Administrator bei Ihrer WordPress-Site an und rufen Sie das Dashboard auf (http://example.com/wp-admin/). Aktivieren Sie das WP Super Cache-Plugin und gehen Sie dann in das Einstellungsfenster, indem Sie die folgenden Schritte ausführen:

  1. Klicken Sie auf Plugins (linke Leiste)

  2. Klicke auf Activate direkt unter WP Super Cache

  3. Klicke auf WP Super Cache Settings

Caching aktivieren

Jetzt werden wir das Caching aktivieren und WP Super Cache mit einigen sinnvollen Einstellungen konfigurieren:

  1. Klicken Sie auf die Registerkarte Erweitert

  2. Überprüfen Sie die Cache-Zugriffe auf diese Website, um einen schnellen Zugriff zu erhalten.

  3. Wählen Sie Use mod_rewrite aus, um Cache-Dateien bereitzustellen.

Dadurch wird WP Super Cache so konfiguriert, dass Dateien zwischengespeichert werden, auf die zugegriffen wird, und die Einstellung mod_rewrite überlässt es Nginx, die zwischengespeicherten Dateien bereitzustellen. Wir werden mod_rewrite nicht verwenden, da es sich um ein Apache-Plugin handelt, und wir verwenden Nginx als unseren Webserver, aber wir müssen unsere Nginx-Serverblockkonfiguration aktualisieren, damit Nginx die zwischengespeicherten Dateien in geeigneter Weise bereitstellt. Wir werden darauf zurückkommen, nachdem wir einige weitere WP Super Cache-Einstellungen vorgenommen haben (Hinweis: Die folgenden Einstellungen sind optional):

  1. Aktivieren Sie die Option "Seiten komprimieren", damit sie den Besuchern schneller zur Verfügung stehen. "

  2. Überprüfen Sie, ob Seiten nicht für bekannte Benutzer zwischengespeichert wurden.

  3. Überprüfe Cache rebuild.

  4. Check Extra homepage checks.

Als nächstes müssen Sie Ihre Einstellungen speichern, indem Sie auf die Schaltfläche Update Status (Status aktualisieren) klicken, die sich unter den Einstellungen befinden sollte, die Sie gerade geändert haben:

WP Super Cache ist jetzt so konfiguriert, dass Ihre WordPress-Seiten zwischengespeichert werden. Wir müssen Nginx weiterhin so konfigurieren, dass die zwischengespeicherten Dateien _ gewartet_ werden. Schauen wir uns jedoch noch einige andere Dinge im Fenster mit den Einstellungen für den WP-Super-Cache an.

Warnungen zu Mod Rewrite und Garbage Collection

An dieser Stelle werden oben im Konfigurationsfenster von WP Super Cache einige Warnbanner angezeigt. Es gibt zwei Warnungen zu Mod Rewrite-Regeln (hier ist die erste):

image: https: //assets.digitalocean.com/articles/wordpress_supercache/mod_rewrite_warning.png [Mod Rewrite Warning]

Sie können dies ignorieren, da wir Nginx anstelle von Apache verwenden.

Als Nächstes wird eine Warnung zu den Einstellungen der Garbage Collection angezeigt:

Diese Warnung kann entfernt werden, indem sie verworfen wird (d. H. Klicken Sie auf die Schaltfläche „Verwerfen“ oder konfigurieren Sie die Garbage Collection. Um die Garbage Collection zu konfigurieren, gehen Sie auf der Registerkarte "Erweitert" zum Abschnitt "Verfallszeit und Garbage Collection", konfigurieren Sie ihn nach Ihren Wünschen und klicken Sie auf die Schaltfläche "Verfallsdatum ändern".

Anzeigen von Cache-Inhalten

Sie können die Liste aller zwischengespeicherten Seiten anzeigen, indem Sie in den WP Super Cache-Einstellungen auf die Registerkarte Contents klicken. Hier sehen Sie die "Cache-Statistiken", die zeigen, wie viele Dateien zwischengespeichert werden (und welche Dateien zwischengespeichert werden). Hier können Sie auch den aktuellen Cache löschen.

WP Super Cache speichert nur Seiten zwischen, die von Benutzern besucht wurden, die nicht angemeldet sind, keinen Kommentar hinterlassen oder keinen kennwortgeschützten Beitrag angezeigt haben. Wenn Sie sich also fragen, warum die von Ihnen besuchten Seiten nicht zwischengespeichert werden, versuchen Sie, Ihre WordPress-Site im privaten Browsermodus anzuzeigen. Außerdem ist Nginx noch nicht für die Bereitstellung von zwischengespeicherten Dateien konfiguriert, sodass Sie bei den Zugriffszeiten keine Verbesserungen feststellen können.

Zusätzliche WP Super Cache Konfiguration

Zusätzlich zu den oben beschriebenen Einstellungen gibt es viele andere, die Sie möglicherweise als nützlich oder interessant erachten. Wir werden kurz auf die Registerkarten CDN und Preloading eingehen.

  • Verwenden einer CDN * - Überspringen Sie, wenn Sie Jetpack Photon verwenden möchten

Wenn Sie ein CDN verwenden, müssen Sie die CDN-Unterstützung auf der Registerkarte CDN aktivieren. Alle Einstellungen, die Sie zum Auslagern Ihrer statischen Assets benötigen, finden Sie hier.

  • Cache vorladen *

Auf der Registerkarte Preload können Sie WP Super Cache so konfigurieren, dass Seiten automatisch zwischengespeichert werden. Dies kann so konfiguriert werden, dass Ihre gesamte Site oder eine feste Anzahl Ihrer letzten Posts in einem von Ihnen festgelegten Zeitintervall vorgeladen werden. Das Vorladen von Seiten beansprucht Systemressourcen (CPU zum Abrufen von Seiten und Festplattenspeicher zum Speichern der statischen Seiten). Berücksichtigen Sie dies daher, wenn Sie entscheiden, ob Sie sie aktivieren möchten.

Konfigurieren Sie Nginx so, dass zwischengespeicherte Dateien bereitgestellt werden

Jetzt, da Ihre WordPress-Site Seiten mit WP Super Cache zwischenspeichert, müssen Sie Nginx so konfigurieren, dass die zwischengespeicherten Dateien bereitgestellt werden. Bearbeiten Sie die Nginx-Serverblockkonfiguration:

sudo vi /etc/nginx/sites-enabled/wordpress

Wenn Sie die vorausgesetzten Tutorials befolgt haben, platzieren Sie die folgenden Konfigurationszeilen direkt unter der Zeile "+ Servername +":

   set $cache_uri $request_uri;

   # POST requests and urls with a query string should always go to PHP
   if ($request_method = POST) {
       set $cache_uri 'null cache';
   }
   if ($query_string != "") {
       set $cache_uri 'null cache';
   }

   # Don't cache uris containing the following segments
   if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
       set $cache_uri 'null cache';
   }

   # Don't use the cache for logged in users or recent commenters
   if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in") {
       set $cache_uri 'null cache';
   }

   # Use cached or actual file if they exists, otherwise pass request to WordPress
   location / {
       try_files /wp-content/cache/supercache/$http_host/$cache_uri/index.html $uri $uri/ /index.php ;
   }

Dann löschen Sie die folgenden Zeilen bis zu + location ~ \ .php $ {+.

Starten Sie Nginx neu, damit die Konfigurationsänderungen wirksam werden:

sudo service nginx restart

Jetzt werden die Seiten Ihrer WordPress-Site über WP Super Cache zwischengespeichert! Wenn Sie Ihre Bilder auch mit Jetpack Photon zwischenspeichern möchten, fahren Sie mit dem nächsten Abschnitt fort.

Installieren und aktivieren Sie Jetpack Photon

Laden Sie das Jetpack-Plugin in Ihr Home-Verzeichnis herunter:

cd ~; wget http://downloads.wordpress.org/plugin/jetpack.latest-stable.zip

Dann entpacke das Jetpack-Archiv in dein WordPress-Plugins-Verzeichnis:

cd /wp-content/plugins
unzip ~/jetpack.latest-stable.zip
sudo chgrp -R www-data jetpack

Jetpack wird mit mehreren Modulen außer Photon ausgeliefert, von denen viele standardmäßig aktiviert sind. Wenn Sie die anderen Jetpack-Module zusätzlich zu Jetpack verwenden möchten, überspringen Sie die folgende Bearbeitung und aktivieren Sie das Photon-Modul über die Jetpack-Plugin-Einstellungen in Ihrem WordPress-Administrator-Dashboard. Andernfalls können wir die anderen Module deaktivieren, indem wir den PHP-Dateien des Plugins einige Codezeilen hinzufügen.

Öffne + wp-config.php + zum Bearbeiten:

vi /wp-config.php

Gehen Sie zum Ende der Datei und fügen Sie die folgenden Codezeilen hinzu:

function change_default_modules() {
   return array( 'photon' );  // activate these modules by default
}
add_filter( 'jetpack_get_default_modules', 'change_default_modules' );

function activate_specific_jetpack_modules( $modules ) {
       $active_modules = array( 'photon' );  // enable these modules
       $modules = array_intersect_key( $modules, array_flip( $active_modules ) );  // deactivate other modules
       return $modules;
}
add_filter( 'jetpack_get_available_modules', 'activate_specific_jetpack_modules' );

Speichern und Beenden. Wenn Sie jetzt das Jetpack-Plugin aktivieren, wird nur das Photon-Modul geladen und die Verwendung aller anderen Jetpack-Module deaktiviert.

Aktiviere das Jetpack Plugin

Melden Sie sich jetzt als Administrator auf Ihrer WordPress-Site an und rufen Sie das Dashboard auf (http://example.com/wp-admin/). Aktivieren Sie das Jetpack-Plugin und gehen Sie dann in seine Einstellungen, indem Sie die folgenden Schritte ausführen:

  1. Klicken Sie auf Plugins (linke Leiste)

  2. Klicken Sie auf Activate direkt unter Jetpack

  3. Klicken Sie im grünen Banner oben im Fenster "Plugins" auf "Mit WordPress.com verbinden"

  4. Geben Sie Ihr WordPress.com-Login ein und klicken Sie auf Authorize Jetpack

Nun werden alle Bilder auf Ihrer WordPress-Site (.png, .jpg, .gif) vom Photon-CDN von Jetpack bereitgestellt. Hier sind einige Möglichkeiten, wie Ihr Server betroffen sein wird:

  • * Geringerer Bandbreitenverbrauch *: Ihr Server benötigt weniger ausgehende Bandbreite, da das von WordPress.com bereitgestellte Photon-CDN die Bilder Ihrer Site liefert

  • * Weniger Ressourcenverbrauch *: Es wird weniger CPU und Speicher verbraucht, da keine Bilder mehr an Benutzer und meist nur noch statische Seiten bereitgestellt werden

  • * Mehr Benutzerkapazität *: Es können mehr gleichzeitige Benutzer verarbeitet werden, da pro Anforderung weniger Ressourcen verbraucht werden

Das ist es! Das Photon-CDN speichert Ihre Bilder im Cache und stellt sie bereit, sobald sie angefordert werden. Beachten Sie, dass Sie Photon jederzeit in den Jetpack-Plugin-Einstellungen deaktivieren können, wenn Sie sich dafür entscheiden, es nicht zu verwenden.

Leistungsvergleich

Um Ihnen eine Vorstellung vom möglichen Leistungsvorteil dieses Setups zu geben, haben wir zwei 1-CPU / 1-GB-RAM-VPS eingerichtet (eine ohne WP-Super-Cache und eine damit) und mit Apache JMeter einen Auslastungstest für diese VPS durchgeführt (mehrere Benutzer) Zugriff auf 5 WordPress-Seiten über 10 Sekunden in einer Schleife).

Der nicht zwischengespeicherte Server konnte ca. 3 simulierte Benutzer pro Sekunde verarbeiten, bevor Leistungsprobleme aufgrund der CPU-Auslastung auftraten.

Auf dem zwischengespeicherten Server mit installiertem WP Super Cache konnten über 50 simulierte Benutzer pro Sekunde (Millionen pro Tag) bedient werden, ohne dass Leistungseinbußen zu verzeichnen waren. Tatsächlich wurden die Anforderungen schneller zurückgegeben, da die angeforderten Seiten zwischengespeichert wurden!

Ein Tutorial zur Verwendung von Apache JMeter zur Durchführung eigener Auslastungstests finden Sie hier: https://www.digitalocean.com/community/tutorials/how-to-use-apache-jmeter-to-perform-load-testing- on-a-web-server [So verwenden Sie Apache JMeter zum Ausführen von Auslastungstests auf einem Webserver]

Fazit

Nachdem Sie WP Super Cache und Jetpack Photon installiert haben, sollten Sie in der Lage sein, viel mehr Benutzer als zuvor zu bedienen. Möglicherweise möchten Sie mit den WP Super Cache-Einstellungen spielen, bis Sie das Gefühl haben, eine Konfiguration zu haben, die Ihren Anforderungen am besten entspricht.

Zögern Sie nicht, Fragen oder eigene Leistungsvergleiche zu posten!