Nginx PHP Cache für WordPress

matz

Member
Bei mir sieht es so aus:
In der /etc/nginx/conf.d habe ich eine kleine 000-meine-website.conf-Datei mit folgendem Inhalt erstellt:
Code:
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=WORDPRESS:500m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
add_header X-Cache $upstream_cache_status;
Im ISPC in den Optionen der Website steht folgende Direktive:
Code:
#Cache everything by default
set $no_cache 0;

#Don't cache POST requests
if ($request_method = POST)
{
    set $no_cache 1;
}

#Don't cache if the URL contains a query string
if ($query_string != "")
{
    set $no_cache 1;
}

#Don't cache the following URLs
if ($request_uri ~* "/(administrator/|login.php)")
{
    set $no_cache 1;
}

#Don't cache if there is a cookie called PHPSESSID
if ($http_cookie = "PHPSESSID")
{
    set $no_cache 1;
}
location @php { ##merge##
    fastcgi_cache_bypass $no_cache;
    fastcgi_no_cache $no_cache;  
    fastcgi_cache WORDPRESS;
    fastcgi_cache_valid 200 60m;  
}

location / { ##merge##
    try_files $uri $uri/ /index.php?$args;
    if (!-e $request_filename) {
         rewrite ^(.+)$ /index.php?q=$1 last;
     }
}
Das hat die Geschwindigkeit um das erwähnte 4-5fache erhöht, HTTP/2 trägt auch seinen Teil dazu bei. Mit Wordpress kann man das ohne viel Aufwand testen. Einfach irgendein aktuelles Theme aktivieren und einige neue Blogbeiträge mit gefühlt 10 Tonnen Lorem ipsum füllen. Das lässt die Datenbank etwas schuften und der Cache füllt sich. Beim Load-Test mit Jmeter eine großzügige Hochlauf-Rampe einstellen (so um die 20-30s) und die "Angreifer"-Anzahl entsprechend den Server-Möglichkeiten einstellen. Bei mir reichen 500 gleichzeitig damit alles fehlerfrei läuft, bis 1500 ist es noch verträglich. Verzichte ich auf HTTPest und verwende HTTP dann sind 2000 so gut wie fehlerfrei und ich erreiche 900-950 saubere Anfragen per Sekunde. Bei meinem mickrigen Server kann ich damit sehr gut leben.
 
Zuletzt von einem Moderator bearbeitet:

Werbung

Top
Unsere Website wird durch die Anzeige von Online-Werbung für unsere Besucher ermöglicht.
Bitte ziehe es in Betracht, uns zu unterstützen, indem du deinen Werbeblocker deaktivierst.