Wie konfiguriert man einen Plesk-Server (Ubuntu) für den Soloeinsatz von NGINX für Drupal 8.X?
Um Drupal 8 unter NGINX (ohne Apache) zu betreiben, findet man auf nginx.com eine Musterkonfiguration: https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/
Diese funktioniert bei einem Server, der unter Plesk läuft, allerdings nicht ohne Modifikationen.
Nachfolgend findet man meine Konfiguration, die seit einiger Zeit auf meinem Server problemlos und schneller läuft, als die ursprüngliche NGINX (als Proxy)/Apache-Kombination.
Wer diese Konfiguration übernehmen und testen will, muss lediglich die folgende Zeile an seine gewählte php-Version anpassen:
fastcgi_pass unix:/var/run/plesk/plesk-php74-fpm.sock;
#NGINX configuration start
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_static on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types application/javascript application/rss+xml application/vnd.ms-fontobject application/x-font application/x-font-opentype application/x-font-otf application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/opentype font/otf font/ttf image/svg+xml image/x-icon text/css text/javascript text/plain text/xml;
location ~ / {
index index.php index.cgi index.pl index.html index.xhtml index.htm index.shtml;
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \..*/.*\.php$ {
return 403;
}
location ~ ^/sites/.*/private/ {
return 403;
}
location ~ ^/sites/[^/]+/files/.*\.php$ {
deny all;
}
location ~* ^/.well-known/ {
allow all;
}
location ~ (^|/)\. {
return 403;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ /vendor/.*\.php$ {
deny all;
return 404;
}
location ~ '\.php$|^/update.php' {
fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
include fastcgi_params;
fastcgi_param HTTP_PROXY "";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param QUERY_STRING $query_string;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/plesk/plesk-php74-fpm.sock; #(depends on your configuration)
}
location ~ ^/sites/.*/files/styles/ {
try_files $uri @rewrite;
}
location ~ ^(/[a-z\-]+)?/system/files/ {
try_files $uri /index.php?$query_string;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
try_files $uri @rewrite;
expires max;
log_not_found off;
}
if ($request_uri ~* "^(.*/)index\.php(.*)") {
return 307 $1$2;
}
#NGINX configuration end
Die unter Plesk angebotenen Zusatzeinstellungen (s. Anlage) müssen vor Anwendung dieser Konfiguration abgewählt werden. Das wären:
- Proxymodus
- Intelligente Bearbeitung statischer Dateien
- Statische Dateien direkt durch nginx bedienen
- nginx-Caching aktivieren
Ich hoffe, diese Anleitung erspart den ein oder anderen Irrweg. Falls Verbesserungen meines Ansatz möglich bzw. Korrekturen nötig sind, freue ich mich über Rückmeldungen
Anhang | Größe |
---|---|
nginx.PNG | 41.96 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 1 Tag 17 Minuten
vor 1 Tag 2 Stunden
vor 1 Tag 3 Stunden
vor 1 Tag 4 Stunden
vor 1 Tag 4 Stunden
vor 1 Tag 4 Stunden
vor 1 Tag 18 Stunden
vor 3 Tagen 3 Stunden
vor 4 Tagen 2 Stunden
vor 4 Tagen 9 Stunden