Optimierung von WordPress mit Lack und W3 Total Cache

Dieses Tutorial folgt Installieren Sie WordPress in der Amazon Cloud und zeigen Sie, wie Sie Ihre Website mit Zwischenspeicherung optimieren können.

Wenn Sie WordPress selbst hosten, empfiehlt es sich, eine Art Zwischenspeicherlösung zu implementieren. Unabhängig davon, ob Sie Ihr Blog in einer kostengünstigen Mikroinstanz in der Amazon Cloud (AWS) betreiben möchten oder davon ausgehen, dass Ihr Blog erhebliche Skalen- oder Verkehrsspitzen erhält, ist das Caching für die Verwaltung der Leistung von entscheidender Bedeutung. Caching kann auch dazu beitragen, Ihre Google Page Speed ​​zu verbessern, was sich auf das Ranking Ihrer Suchmaschine auswirkt.

Abhängig von Ihrem Websiteverkehr und der Komplexität Ihres WordPress-Designs kann die Leistung von AWS ziemlich langsam sein. Ich empfehle die Verwendung des Open Source Varnish Cache mit dem kostenlosen W3 Total Cache-Plugin (W3TC). 

Varnish ist ein Cache, der Kopien von Seiten für Benutzer speichert, die nicht angemeldet sind (die meisten Leser sind nicht). Wenn Anforderungen auf Ihrem Server eingehen, gibt Varnish diese vorgefertigten Seiten sofort zurück, anstatt Apache, PHP und WordPress für jede Anforderung neu erstellen zu müssen. Wenn der Datenverkehr skaliert, kann das erneute Erstellen jeder Seite über den WordPress-Stack Ihren Server buchstäblich zum Absturz bringen. Später kann W3 Total Cache so eingerichtet werden, dass Seiten Ihrer Website regelmäßig vorab erstellt werden, sodass sie jederzeit für Lacke bereit sind.

Hinweis: Dies ist auch ein guter Grund, ein externes Kommentar-Plugin wie Disqus zu berücksichtigen, anstatt eingebaute WordPress-Kommentare. Das Disqus-JavaScript ist zwischengespeichert. Wenn sich Ihre Kommentatoren auf Ihrer WordPress-Site anmelden, wird das Caching seltener verwendet und Ihre Skalierbarkeit für Ihre aktivsten Besucher wird stark reduziert.

Die Kraft des Lackes ist dramatisch, wenn das Interesse an Ihrer Website steigt. Ich habe meine eigene Site mit dieser Konfiguration erfolgreich mit einer kleinen Amazon-Instanz für ca. 14,95 $ monatlich erfolgreich ausgeführt, wobei sie viele Auftritte bei BoingBoing, Slashdot et al.

Wenn Sie mehr über Caching, seine Vorteile und W3TC erfahren möchten, lesen Sie die Einführung von Ahmad Awais zum Caching. 

Lackcache installieren

Varnish Cache ist ein Caching-Modul für Linux. Wir werden Varnish so einrichten, dass er auf HTTP (Web) -Verkehr auf Port 80 überwacht, wobei Apache nur auf Port 8080 Varnish hört. Wenn Varnish eine Seite benötigt, die manuell erstellt werden muss, leitet er die Anforderung an Apache Port 8080 weiter.

Das kann anfangs etwas verwirrend sein - aber ja, wir bewegen Apache im Wesentlichen hinter die Kulissen. Bei Port 80 für alle Ihre Webanfragen fungiert Lack als Eingangstür. Apache wird eine unterstützende Rolle für Varnish an Port 8080 übernehmen. Auf Port 8080 gibt es keinen öffentlichen Verkehr, nur private Anfragen von Varnish. Wenn Sie wissen möchten, wie sich dies auf AWS-Sicherheitsgruppen bezieht, müssen Sie Port 8080 nicht öffnen.

Um zu beginnen, müssen wir Varnish in unserer Instanz installieren:

sudo apt-get install lack

Bearbeiten Sie die ports.conf-Datei von Apache, um Port 8080 zu überwachen:

sudo nano /etc/apache2/ports.conf

So sollte es aussehen:

Hören Sie 8080

Bearbeiten Sie Ihre Apache-Site-Konfigurationsdatei, um auf Port 8080 zu antworten:

sudo nano /etc/apache2/sites-available/wordpress.conf

Ändern Sie die VirtualHost-Zeile von *: 80 in *: 8080

Möglicherweise müssen Sie Ihre Apache-Standard-Site ändern, um Port 8080 zu überwachen, oder sie deaktivieren:

sudo a2dissite 000-default

Verschieben Sie die ursprünglichen Varnish-Konfigurationsdateien als Backup in Ihr Home-Verzeichnis (falls Sie sich später dazu entscheiden, sie zu überprüfen):

sudo mv / etc / default / varnish ~ / default-varnish-old Sudo mv /etc/varnish/default.vcl ~ / varnish-default-vcl.old

Ersetzen Sie die Standardkonfiguration von Varnish durch die hier auf gist verfügbare Datei. Sie können Kopieren und Einfügen verwenden. 

sudo nano / etc / default / lack

Dann ersetzen Sie hier die Varnish VCL-Konfiguration durch die gist-Datei (erneut kopieren und einfügen)..

Warnung: Sie können VCL-Fehler erhalten, wenn Sie versuchen, Varnish neu zu starten, wenn Sie beim Einfügen die Zeilenumbrüche nicht ordnungsgemäß verwalten. Die Zeilenumbrüche können schwer zu erkennen sein. Überprüfen Sie sie daher sorgfältig. Wenn beim Neustart von Varnish Fehler auftreten, ist es ziemlich gut, Ihnen mitzuteilen, welche Zeilennummer Sie sich ansehen möchten.

sudo nano /etc/varnish/default.vcl

Lass uns jetzt Apache und Varnish neu starten:

Sudo-Dienst apache2 Neustart des Sudo-Service-Lackes

Wenn Sie zu diesem Zeitpunkt VCL-Fehler erhalten, kann dies an defekten Zeilenumbrüchen beim Einfügen in die Varnish-Datei default.vcl liegen.

Besuchen Sie Ihre Website unter http://yourdomain.com, und alles sollte mit Varnish zusammenarbeiten. Beim zweiten Laden einer statischen Seite sollte sie deutlich schneller sein.

W3 Total Cache installieren 

W3 Total Cache ist ein hervorragendes WordPress-Plugin. Es ist kostenlos und bietet eine enorme Leistungsoptimierung für Ihre Website. Weitere Informationen zu W3 Total Cache finden Sie auf der Plugin-Site.

Melden Sie sich unter http://yourdomain.com/wp-admin mit Ihrem Benutzernamen und Kennwort an, die Sie während des Setups konfiguriert haben. Wählen Sie Plugins -> Add New aus dem linken Menü der Seitenleiste. Suche nach W3 Total Cache.

W3 Total Cache bietet aufgrund seiner Leistungsfähigkeit und Raffinesse eine Vielzahl von Einstellungen, die überwältigend wirken können. Im Folgenden werden einige empfohlene Einstellungen angegeben, die den Einstieg erleichtern.

Nicht überwältigt werden Beginnen Sie mit den unten gezeigten allgemeinen Einstellungen und gehen Sie von dort weiter. Wenn Sie daran interessiert sind, schneller zu beginnen, Ich habe Anweisungen zum Herunterladen meiner Standardeinstellungen und zum Importieren gegeben (siehe unten)..

Alternativ bietet W3 Total Cache eine kostenpflichtige Installation und Unterstützung ab 150 US-Dollar. Sie können sie über die Plugin-Dashboard-Seite oder deren Website erreichen. Dies ist ein großartiges Plugin, daher empfehle ich sie gut. Ich habe etwas Erfahrung mit ihrer bezahlten Unterstützung und es ist im Allgemeinen gut. Sie können auch die Übersicht über die W3 Total Cache-Installation und die häufig gestellten Fragen auf der Plugin-Website lesen, um weitere Informationen zu erhalten.

Auf hohem Niveau empfehle ich die folgenden Einstellungen zu aktivieren, die ich unten ausführlicher erläutere:

  • Zwischenspeicherung von Seiten: Zwischenspeicherung von Seiten für schnelleres Laden und effizientere Bereitstellung (getrennt von Lack).
  • Reduzieren: Verkleinert und kombiniert JS- und CSS-Dateien für ein schnelleres Laden und eine effizientere Bereitstellung.
  • Objekt-Cache: Beschleunigt die Erzeugung von Inhalten durch WordPress.
  • Browser-Cache: Ordnet den Inhalt ordnungsgemäß zu, sodass Browser-Clients das Herunterladen von Seiten minimieren.
  • Reverse Proxy: Weist W3TC an, den Varnish-Cache zu leeren, wenn Beiträge, Seiten usw. aktualisiert werden.
  • Amazon CloudFront CDN: Gewährleistet die schnelle, zuverlässige und geografische Bereitstellung statischer Dateien und Bilder in der Nähe Ihrer Besucher.
  • Verschiedenes: Verwenden Sie eine Sitemap-Indexdatei, um Seiten mit hoher Priorität im Voraus zwischenzuspeichern.

Unterstützende Komponenten installieren

Bevor wir W3 Total Cache konfigurieren, müssen wir eine Reihe von Linux-Komponenten installieren und aktivieren, die erforderlich sind. Stellen Sie erneut eine Verbindung zu Ihrer Instanz her und führen Sie die folgenden Schritte aus:

sudo apt-get installieren php5-dev php5-memcache memcached php-pear Build-Essential php5-tidy php5-curl apache2-dev php-apc

Bearbeiten Sie Ihre php.ini-Datei, um Memcache zu aktivieren:

sudo nano /etc/php5/apache2/php.ini

Fügen Sie im Abschnitt "Dynamic Extensions" die folgenden Zeilen hinzu:

extension = apc.so extension = memcache.so

Sagen Sie Apache, diese Module zu aktivieren und starten Sie es erneut:

sudo a2enmod umschreiben sudo a2enmod verfällt sudo a2enmod-Header Sudo-Dienst apache2-Neustart

Bearbeiten Sie Ihre Datei wp-config.php, um die Zwischenspeicherung zu aktivieren:

sudo nano /var/www/wordpress/wp-config.php

Fügen Sie die folgende WP_CACHE-Definition über der Stop-Bearbeitungszeile hinzu:

define ('WP_CACHE', wahr); / * Das ist alles, hör auf zu bearbeiten! Viel Spaß beim Bloggen. * /

Konfigurationsstatus überprüfen

An diesem Punkt ist es nützlich, das W3TC-Plugin-Dashboard aufzurufen und zu überprüfen, ob alle richtigen Komponenten aktiv sind. Zunächst müssen wir jedoch Fancy Permalinks für URL-Formate aktivieren, wodurch unsere Website für die Suchmaschinenindexierung optimiert wird. Wählen Sie im WordPress Admin Dashboard Einstellungen -> Permalinks, wählen Sie Tag und Name und klicken Sie auf Änderungen speichern. 

Klicken Sie dann in der linken Seitenleiste auf Leistung -> Dashboard und dann auf die Schaltfläche Kompatibilitätsprüfung. Es sollte ungefähr so ​​aussehen:

Hinweis: Sie können etwas Zeit sparen, wenn Sie ein Design auswählen und die anderen Plugins installieren, die Sie verwenden möchten, bevor Sie den Rest des W3 Total Cache-Konfigurationsprozesses abschließen. Wenn Sie Designs ändern und Plugins hinzufügen, müssen Sie wahrscheinlich Ihre gesamten W3-Cache-Einstellungen löschen und erneut testen.

Allgemeine Einstellungen

W3TC arbeitet im Allgemeinen gut mit den Standardeinstellungen. Wir müssen also in erster Linie die Seite "Allgemeine Einstellungen" konfigurieren und nicht in jeden einzelnen Funktionsbereich gehen.

Besuchen Sie die Seite W3TC General Settings. Klicken Sie in der linken Seitenleiste auf Leistung -> Allgemeine Einstellungen. Wir können hier ein High-Level-Setup durchführen, aber dann führen wir auch detailliertere Einstellungen auf den einzelnen Einstellungsseiten durch. Ich lasse das Kontrollkästchen "Alle Caching-Typen ein- oder ausschalten (auf einmal)" in der allgemeinen Box deaktiviert.

Seitencache mit alternativem Opcode-Cache (APC) aktivieren:

Aktivieren Sie Minify mit den folgenden Einstellungen. Ich verwende den manuellen Modus, da minify einige Motive zerstören kann, wenn Ihre Einstellungen zu aggressiv sind (das gewählte Motiv funktioniert jedoch gut):

Ich lasse das Kontrollkästchen für das Datenbank-Caching nicht aktiviert, da dies nur empfohlen wird, wenn Sie das Objekt-Caching nicht aktivieren.

Aktivieren Sie den Objekt-Cache:

Aktivieren Sie den Browser-Cache:

Reverse Proxy aktivieren:

Konfigurieren Sie W3TC so, dass der Varnish Cache regelmäßig von 127.0.0.1 (localhost) gelöscht wird..

Seiten-Cache-Einstellungen

Klicken Sie in der linken Seitenleiste auf Leistung -> Seiten-Cache. Scrollen Sie nach unten zum Feld Cache Preload. Aktivieren Sie "Seitencache automatisch füllen". Geben Sie Ihre Sitemap-URL ein. 

Hinweis: Sie müssen das installiert haben Besseres WordPress-Plugin für Google XML Sitemaps bevor dies richtig funktioniert.

Wenn Sie ein CAPTCHA in Kontaktformularen verwenden, sollten Sie den Pfad zu diesen Seiten in den Cache-Ausschluss einschließen. Durch das Zwischenspeichern eines CAPTCHA wird die Funktionalität beeinträchtigt. Scrollen Sie nach unten zum Feld Erweiterte Einstellungen. Fügen Sie Ihren Dateipfad hinzu, z. Kontakte hier:

Benutzeragentengruppen

Da mein Thema schnell reagiert, cache ich Mobile- und Tablet-Benutzeragenten separat. Mit anderen Worten speichert Varnish Kopien verschiedener responsiver Layouts meiner Site. Wenn ein mobiler Benutzer auf die Website kommt, erhält er eine bestimmte Datei und nicht, wenn ein Desktop-Benutzer ankommt. Wenn der Inhalt Ihrer Website dynamisch reagiert (z. B. nur Änderungen in Javascript und CSS), müssen Sie dies nicht tun.  

Wenn Sie dies möchten, aktivieren Sie die Agentengruppen "Hoch" und "Niedrig".

Verweisgruppen

Ich aktiviere auch Referrer-Gruppen für Suchmaschinen:

Einstellungen reduzieren

Minify komprimiert Ihren HTML-, JS- und CSS-Code und kombiniert Dateien wenn möglich. Dies beschleunigt die Bereitstellung Ihrer Seiten und reduziert die Bandbreite. Es kann jedoch manchmal dazu kommen, dass der Themencode beschädigt wird.

Möglicherweise müssen Sie die Einstellungen für das ausgewählte Thema anpassen. Ich fand heraus, dass mein Thema durch das Deaktivieren der Inline-CSS-Minifizierung gut funktioniert. Klicken Sie in der linken Seitenleiste auf Leistung -> Reduzieren:

Beispieleinstellungen importieren (optional)

Wenn Sie lieber meine Einstellungsdatei importieren möchten, gehen Sie folgendermaßen vor:

  1. Laden Sie die Beispieleinstellungsdatei herunter
  2. Besuchen Sie die allgemeinen Einstellungen des W3TC, z. linke Seitenleiste, Leistung -> Allgemeine Einstellungen und blättern Sie mit Import / Export-Einstellungen zum unteren Bereich (siehe unten)..
  3. Klicken Sie neben Konfiguration importieren auf Datei auswählen und wählen Sie die heruntergeladene Beispieleinstellungsdatei aus. Klicken Sie dann auf Hochladen.
  4. Durchsuchen Sie Ihre W3TC-Einstellungen und stellen Sie sicher, dass sie für Ihre WordPress-Site sinnvoll sind.
  5. Möglicherweise müssen Sie die Einstellungen für Ihre Site nach dem Import anpassen, z. Google PageSpeed, Amazon CloudFront CDN usw.

Verwenden des Amazon CloudFront-CDN

Es lohnt sich auf jeden Fall, ein CDN zu aktivieren. Das CDN ist sehr hilfreich, um die Gesamtlast Ihres Servers zu reduzieren. Beispielsweise kann W3TC Anforderungen für Bilder und statische Dateien wie Skripts und css an Amazon CDN umleiten.

Wenn Sie dies möchten, befolgen Sie die Anweisungen auf meiner Website zum Aktivieren von Amazon CloudFront. Ich verwende derzeit die Pull-Methode (mein Tutorial beschreibt die ältere Push-Methode).

Leistungsüberwachung

Es gibt verschiedene Möglichkeiten, die Leistung Ihres Servers zu überwachen. W3TC unterstützt die Integration mit dem Überwachungsmodul New Relic. W3TC bietet ein Dashboard-Widget für Google Page Speed ​​und ein Plugin für Google Page Speed ​​für WordPress. Diese Informationen helfen Ihnen bei der Beurteilung der Leistung Ihres Blogs.

Herzliche Glückwünsche!

Sie sollten jetzt stolzer Besitzer einer vollständig optimierten, selbst gehosteten WordPress-Site in der Amazon-Cloud sein, die Varnish und W3 Total Cache verwendet. Ich hoffe, dass Sie diese zweiteilige Serie hilfreich fanden. Bitte lassen Sie uns wissen, was für Sie gut funktioniert hat und was nicht.