NGINX ist ein leistungsstarker Webserver, der besonders für hochfrequentierte Webseiten wie WordPress geeignet ist. Durch korrekt konfigurierte Einstellungen kannst du die Ladezeit reduzieren, die Sicherheit erhöhen und die Serverressourcen effizienter nutzen.
Hier ist eine grundlegende nginx.conf
, die als Ausgangspunkt für eine WordPress-Installation dient:
server {
listen 80;
server_name deine-domain.de www.deine-domain.de;
root /pfad/zu/wordpress;
index index.php index.html index.htm;
# GZIP-Komprimierung aktivieren
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# Standard-Sicherheitsheader
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
# WordPress-spezifische Regeln
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000; # PHP-FPM Server
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# Blockiere Zugriff auf sensible Dateien
location ~* /(\.htaccess|\.htpasswd|\.env|\.user.ini|\.git|\.svn|\.ssh|\.DS_Store) {
deny all;
}
# Cache für statische Inhalte
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|otf|eot|ttf|otf|mp4|webm|ogg|ogv|json)$ {
expires max;
log_not_found off;
}
# Caching von Bildern und statischen Inhalten
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires 1h;
}
}
WordPress nutzt Permalinks, die durch try_files
korrekt gehandhabt werden. Die Zeile
try_files $uri $uri/ /index.php?$args;
stellt sicher, dass WordPress URLs wie /blog/titel-des-beitrags
korrekt auflöst.
Deaktiviere den internen WP-Cronjob (wp-cron.php
) in der wp-config.php
:
define('DISABLE_WP_CRON', true);
Erstelle einen Cronjob auf dem Server, der den Cron alle 15 Minuten ausführt:
*/15 * * * * curl -s https://deine-domain.de/wp-cron.php > /dev/null
FastCGI Cache speichert dynamische Inhalte wie WordPress-Seiten im Speicher:
fastcgi_cache_path /var/cache/nginx/fastcgi_temp levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
server {
...
location ~ \.php$ {
fastcgi_cache WORDPRESS;
fastcgi_cache_valid 200 301 302 10m;
fastcgi_cache_min_uses 1;
add_header X-FastCGI-Cache $upstream_cache_status;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Nutze Redis, um Datenbankabfragen zu beschleunigen:
wp-config.php
hinzu:define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
nginx.conf
keine Konflikte entstehen.Blockiere zu viele Login-Versuche:
location = /wp-login.php {
limit_req zone=one burst=5 nodelay;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Aktiviere HTTPS mit einem SSL-Zertifikat (z. B. von Let’s Encrypt):
server {
listen 443 ssl;
server_name deine-domain.de www.deine-domain.de;
ssl_certificate /etc/letsencrypt/live/deine-domain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/deine-domain.de/privkey.pem;
include ssl-params.conf;
...
}
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header Content-Security-Policy "default-src 'self';";
Aktiviere detaillierte Logs für Fehleranalyse:
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
Nutze Tools wie htop
, ngxtop
oder New Relic
, um die Serverleistung zu überwachen.
Falls du Plesk verwendest, füge unter Domains > NGINX Einstellungen folgende Direktiven ein:
# Zusätzliche Direktiven
gzip on;
gzip_proxied any;
gzip_types text/css application/javascript;
# WordPress Fix
location / {
try_files $uri $uri/ /index.php?$args;
}
Mit diesen Einstellungen kannst du eine schnelle, sichere und zuverlässige WordPress-Umgebung mit NGINX erstellen.
try_files
korrekt konfiguriert ist, damit WordPress-Permalinks funktionieren.fastcgi_pass
an PHP-FPM weitergeleitet werden..htaccess
, .env
oder .git
./wp-login.php
) mit Ratelimiting und einer Firewall.expires
-Headern.Mit diesen Punkten stellst du sicher, dass deine WordPress-Installation unter NGINX schnell, sicher und zuverlässig läuft.