High-performance WordPress mit WP-FFPC, memcached, nginx und ISPConfig

High-performance WordPress mit WP-FFPC, memcached, nginx und ISPConfig

WP-FFPC (WordPress Fast Full Page Cache) ist ein Full Page Cache für WordPress, das direkt im Arbeitsspeicher cacht (z.B. mit APCu oder memcached). Da nginx mithilfe des integrierten memcached-Plugins direkt von memcached lesen und somit den kompletten PHP-/MySQL-Stack umgehen kann, lassen sich so äußerst geringe Ladezeiten erreichen, die sehr nahe am Optimum liegen.

WP-FFPC lässt sich ganz normal über den in WordPress integrierten Plugin-Manager installieren:

Nach erfolgter Installation muss das Plugin noch aktiviert werden; danach findet man die WP-FFPC-Einstellungen unter Einstellungen > WP-FFPC. Die Standard-Einstellungen sollten in den meisten Fällen passen. Achten sollte man darauf, dass als Backend entweder PHP Memcached oder PHP Memcache ausgewählt ist, je nachdem, welches memcached-Modul in PHP zur Verfügung steht (bei den von Timme Hosting verwendeten PHP-Versionen stehen ausnahmslos beide Module, also PHP Memcached und PHP Memcache, zur Verfügung, daher kann man sich bedenkenlos für eine der beiden Varianten entscheiden).

Hier finden Sie mehr Informationen zu PHP Memcached und PHP Memcache:

Wenn WP-FFPC sich mit memcached verbinden kann, erscheint unter Backend status die Nachricht up & running:

Auf dem Reiter nginx finden Sie eine Beispielkonfiguration für nginx:

Da wir ISPConfig als Control Panel nutzen, benötigen wir nur den folgenden, leicht abgewandelten Teil - diese Konfiguration sorgt dafür, dass die meisten Anfragen aus dem Cache (memcached) bedient werden, es aber einige Ausnahmen gibt, so z.B. für POST-Requests oder GET-Requests mit Argumenten, falls der angefragte Pfad mit /wp- beginnt oder wenn bestimmte Cookies gesetzt sind (wie es z.B. für eingeloggte User der Fall ist).

Die Zeile

memcached_pass 127.0.0.1:11211;

sorgt schlussendlich dafür, dass der Request, wenn er es bis hierhin geschafft hat, vom memcached bedient wird, wodurch die Seite extrem schnell lädt, da der komplette PHP-/MySQL-Stack umgangen wird:

client_max_body_size 100M;

# Add trailing slash to */wp-admin requests.
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
                expires max;
                log_not_found off;
}

location / {
                try_files $uri $uri/ @memcached;
}

# try to get result from memcached
location @memcached {
                default_type text/html;
                set $memcached_key data-$scheme://$host$request_uri;
                set $memcached_request 1;

                # exceptions
                # avoid cache serve of POST requests
                if ($request_method = POST ) {
                        set $memcached_request 0;
                }

                # avoid cache serve of wp-admin-like pages, starting with "wp-"
                if ( $uri ~ "/wp-" ) {
                        set $memcached_request 0;
                }

                # avoid cache serve of any URL with query strings
                if ( $args ) {
                        set $memcached_request 0;
                }


                if ($http_cookie ~* "comment_author_|wordpressuser_|wp-postpass_|wordpress_logged_in_" ) {
                        set $memcached_request 0;
                }

                if ( $memcached_request = 1) {

                        memcached_pass     127.0.0.1:11211;
                        error_page 404 = @rewrites;
                }

                if ( $memcached_request = 0) {
                        rewrite ^ /index.php last;
                }
}

## rewrite rules
location @rewrites {
                add_header X-Cache-Engine "";
                rewrite ^ /index.php last;
}

Diese Konfiguration fügen wir einfach in das Feld nginx Direktiven in ISPConfig ein (auf dem Reiter Optionen bei den Website-Einstellungen der betroffenen Website) und klicken auf Speichern:

Zum Schluss muss nun noch die Zeile

define('WP_CACHE',true);

in der wp-config.php eingetragen werden, z.B. gleich am Anfang:

<?php
/**
 * In dieser Datei werden die Grundeinstellungen für WordPress vorgenommen.
 *
 * Zu diesen Einstellungen gehören: MySQL-Zugangsdaten, Tabellenpräfix,
 * Secret-Keys, Sprache und ABSPATH. Mehr Informationen zur wp-config.php gibt es
 * auf der {@link http://codex.wordpress.org/Editing_wp-config.php wp-config.php editieren}
 * Seite im Codex. Die Informationen für die MySQL-Datenbank bekommst du von deinem Webhoster.
 *
 * Diese Datei wird von der wp-config.php-Erzeugungsroutine verwendet. Sie wird ausgeführt,
 * wenn noch keine wp-config.php (aber eine wp-config-sample.php) vorhanden ist,
 * und die Installationsroutine (/wp-admin/install.php) aufgerufen wird.
 * Man kann aber auch direkt in dieser Datei alle Eingaben vornehmen und sie von
 * wp-config-sample.php in wp-config.php umbenennen und die Installation starten.
 *
 * @package WordPress
 */

define('WP_CACHE',true);

[...]

 

Zurück zu den Anleitungen

Finden Sie den passenden Tarif

Unser Tarifberater hilft Ihnen dabei, das passende Paket zu finden. Bei Fragen berät Sie unser Sales-Team sehr gerne unter +49 (0) 4131 / 22 78 1-25 oder sales@timmehosting.de.

Bitte beachten Sie: Der Tarifberater dient nur der groben Orientierung. Ihr tatsächlicher Bedarf kann durch den Ressourcenbedarf Ihrer Anwendung(en), tageszeitabhängige/saisonale/aktionsbedingte Schwankungen des Besucheraufkommens, geplantes Wachstum und weitere Faktoren von der Empfehlung abweichen.

  • 1
  • 2
  • 3
  • 4
  • 5

Was möchten Sie hosten?

Möchten Sie einen oder mehrere Shops hosten? (Eine Multishop-Installation gilt als ein Shop.)

Möchten Sie eine oder mehrere Websites hosten? (Eine Multisite-Installation gilt als eine Website.)

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Besucher haben Sie insgesamt pro Tag?

Wieviele Artikel haben Sie insgesamt in Ihrem Shop/Ihren Shops (inkl. Varianten)?

Wieviele Artikel haben Sie insgesamt in Ihrem Shop/Ihren Shops (inkl. Varianten)?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wieviel Speicherplatz benötigen Sie insgesamt?

Wir empfehlen Ihnen folgende Lösungen:

ScaleServer oder Web Hosting

Zu den ScaleServer Paketen Zu den Web Hosting Paketen

Wir empfehlen Ihnen folgende Lösungen:

ScaleServer oder Shop Hosting

Zu den ScaleServer Paketen Zu den Shop Hosting Paketen

Wir empfehlen Ihnen folgende Lösungen:

Managed vServer oder ScaleServer

Zu den Managed vServer Paketen Zu den ScaleServer Paketen

Wir empfehlen Ihnen folgende Lösungen:

Managed Server oder ScaleServer

Zu den Managed Server Paketen Zu den ScaleServer Paketen

Wir empfehlen Ihnen unsere

Timme Cloud 2.0

Zur Timme Cloud 2.0