Plesk Onyx: Probleme mit nginx

Azurel

Member
Hallo, ich habe eine Frage zur nginx.conf. Gekürzt steht dort

Code:
#ATTENTION!
#
#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.

server {
location / {
}

location @fallback {
}

// Hinweis: Das müsste ein ~* sein und nicht nur ~ (~* bedeutet; case-insensitive regular expression match)
location [B]~[/B] ^/(.*\.(ac3|avi|bmp|bz2|css|cue|dat|doc|docx|dts|eot|exe|flv|gif|gz|htm|html|ico|img|iso|jpeg|jpg|js|mkv|mp3|mp4|mpeg|mpg|ogg|pdf|png|ppt|pptx|qt|rar|rm|svg|swf|tar|tgz|ttf|txt|wav|woff|woff2|xls|xlsx|zip))$ {
try_files $uri @fallback;
}

include "/var/www/vhosts/system/cdn.example.com/conf/vhost_nginx.conf";
}

Mein Problem ist, ich möchte sowas in der GUI eintragen, was dann die "vhost_nginx.conf" ausfüllt:

Code:
location ~* /myfolder1/(a|b|c)/ {
....
}

und wenn sich das auf eine statische Datei bezieht, dann wird das "location" ignoriert, weil in der nginx.conf bereits die statischen Dateien abgefangen werden und nginx dann keine weitere "location" prüft. Damit ich also meine location zum laufen bekomme, müsste ich diese wohl "nested" also in die location setzen. Zum Beispiel mit einem eigenen "include".

Code:
location ~* ^/(.*\.(ac3|avi|bmp|bz2|css|cue|dat|doc|docx|dts|eot|exe|flv|gif|gz|htm|html|ico|img|iso|jpeg|jpg|js|mkv|mp3|mp4|mpeg|mpg|ogg|pdf|png|ppt|pptx|qt|rar|rm|svg|swf|tar|tgz|ttf|txt|wav|woff|woff2|xls|xlsx|zip))$ {
try_files $uri @fallback;

[B]include "/var/www/vhosts/system/cdn.example.com/conf/vhost_nginx_custom.conf";[/B]
}

Soweit so gut, aber die "nginx.conf" wird wohl aus einem Template immer neu generiert, womit meine Änderungen überschrieben würden. Versteht jemand mein Problem und kann mir hier irgendwelche Tutorials, Workarounds oder Beispiele zeigen wie man eine Lösung umsetzt? Danke! :)
 
Hallo!
Soweit so gut, aber die "nginx.conf" wird wohl aus einem Template immer neu generiert, womit meine Änderungen überschrieben würden. Versteht jemand mein Problem und kann mir hier irgendwelche Tutorials, Workarounds oder Beispiele zeigen wie man eine Lösung umsetzt? Danke! :)
Dies sollte sich in den zusätzlichen nginx Einstellungen der Domain eintragen lassen. Websites & Domains -> Domain auswählen -> Einstellungen für Apache & nginx -> nginx-Anweisungen.

mfG
Thorsten
 

Attachments

  • nginx_plesk.png
    nginx_plesk.png
    39 KB · Views: 160
Danke für die Antwort, aber wie geschrieben, genau das funktioniert nicht.

nginx verarbeitet nur die erste Übereinstimmung einer Bedingung. Das heißt alles was direkt die statischen Dateien betrifft wird ignoriert. Nochmal:
location ~ ^/(.*\.(ac3|avi|bmp|bz2|css|cue|dat|doc|docx|dts|eot|exe|flv|gif|gz|htm|html|ico|img|iso|jpeg|jpg|js|mkv|mp3|mp4|mpeg|mpg|ogg|pdf|png|ppt|pptx|qt|rar|rm|svg|swf|tar|tgz|ttf|txt|wav|woff|woff2|xls|xlsx|zip))$ {
try_files $uri @fallback;
}

include "/var/www/vhosts/system/cdn.example.com/conf/vhost_nginx.conf";

Das inlclude vhost_nginx.conf kommt dahinter und Sachen die obige Dateitypen betreffen werden damit ignoriert. Das kann man simpel testen, indem man eine Datei mit dem Typ "TXT" anstatt "txt" erstellt. Dann klappt nämlich alles, weil hier Plesk einen Bug hat und nur klein geschriebene Dateitypen heranzieht.

Eigentlich ist das auch ein potentiell Sicherheitsleck. Wenn statische Dateien in einem eigentlich geschützten Ordner liegen sollten.
 
Back
Top