Drupal ist ein leistungsstarkes Content-Management-System (CMS), das für seine Flexibilität und Sicherheit bekannt ist, was es zur idealen Wahl für Entwickler und Website-Betreiber macht, die robuste und skalierbare Websites erstellen möchten. Um das volle Potenzial von Drupal ausschöpfen zu können, ist es entscheidend, eine optimierte Webserver-Konfiguration zu haben. Nginx, bekannt für seine Effizienz bei der Handhabung simultaner Verbindungen und seinen geringen Ressourcenverbrauch, bietet sich als hervorragende Option für das Hosting leistungsstarker Drupal-Sites an. In diesem Artikel werden wir uns damit beschäftigen, wie man Nginx für eine Drupal-Site konfiguriert, um eine optimale Bereitstellung sowohl für Entwickler als auch für Neulinge zu gewährleisten.
Installation von Nginx
Bevor wir in die spezifische Konfiguration für Drupal eintauchen, müssen wir sicherstellen, dass Nginx auf unserem Server installiert ist. Für Linux-Benutzer kann Nginx leicht über den Paketmanager Ihrer Distribution installiert werden. Für auf Debian oder Ubuntu basierende Distributionen würde der Befehl lauten:
sudo apt update
sudo apt install nginx
Für CentOS oder RHEL wäre der Befehl:
sudo yum install nginx
Nach der Installation können Sie den Nginx-Dienst starten und so einrichten, dass er beim Systemstart automatisch ausgeführt wird:
sudo systemctl start nginx
sudo systemctl enable nginx
Grundlegende Nginx-Konfiguration für Drupal
Die Konfiguration von Nginx für eine Drupal-Site beinhaltet die Anpassung der Konfigurationsdatei für die spezifische Site innerhalb von /etc/nginx/sites-available
und das Erstellen eines symbolischen Links dieser Datei in /etc/nginx/sites-enabled
, um sie zu aktivieren. Hier ist ein grundlegendes Beispiel, wie diese Konfiguration aussehen könnte:
server {
listen 80;
server_name meine-domain.de www.meine-domain.de;
root /var/www/meine-domain.de;
index index.php index.html index.htm;
location / {
try_files $uri /index.php?$query_string;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ '\.php$|^/update.php' {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* ^.+\.php$ {
return 404;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
try_files $uri @rewrite;
expires max;
log_not_found off;
}
}
Dies ist ein Basisbeispiel und sollte entsprechend den spezifischen Anforderungen Ihrer Site und der Serverkonfiguration angepasst werden.
Spezifische Optimierungen für Drupal
Um eine optimale Leistung Ihrer Drupal-Site mit Nginx zu gewährleisten, berücksichtigen Sie die folgenden bewährten Methoden:
1. Statischer Cache:
Drupal profitiert erheblich vom Caching statischer Dateien wie Bilder, CSS und JavaScript. Die Direktive expires max;
in der Nginx-Konfiguration hilft, eine lange Ablaufzeit für diese Ressourcen zu definieren, was die Serverlast reduziert und die Seitenladezeiten für wiederkehrende Besucher beschleunigt.
2. Gzip-Komprimierung:
Die Gzip-Komprimierung verringert die Dateigröße vor der Übertragung, was die Ladezeiten signifikant verbessern kann. Gzip kann in Nginx durch Hinzufügen der folgenden Direktiven in Ihrer nginx.conf
-Datei aktiviert werden:
gzip on;
gzip_types text/plain application/xml application/json application/javascript text/css application/font-woff image/svg+xml;
gzip_proxied any;
3. Zugriff auf sensible Dateien blockieren:
Drupal enthält Dateien und Verzeichnisse, die aus Sicherheitsgründen nicht öffentlich zugänglich sein sollten. Der Zugriff auf diese kann durch die Nginx-Konfiguration blockiert werden:
location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
location ~* /\.(?!well-known).* { return 403; }
Shape.host-Dienste für Drupal auf Nginx
Für Drupal-Sites, die außergewöhnliche Leistung ohne die Komplexität der Verwaltung der Hosting-Infrastruktur suchen, bieten die Linux SSD VPS-Dienste von Shape.host eine robuste und skalierbare Lösung. Mit für Nginx optimierten VPS stellt Shape.host sicher, dass Ihre Drupal-Site schnell lädt und effizient hohe Verkehrsaufkommen bewältigt, und bietet Ihnen die Flexibilität, Ressourcen nach Bedarf zu skalieren.