Ich stoße mit dem Kopf gegen eine Tabelle und versuche herauszufinden, was den Umleitungszyklus in meiner Nginx-Konfiguration verursacht, wenn ich versuche, auf eine URL zuzugreifen, die nicht existiert. Die Konfiguration sieht folgendermaßen aus:
server {
listen 127.0.0.1:8080;
server_name .somedomain.com;
root /var/www/somedomain.com;
access_log /var/log/nginx/somedomain.com-access.nginx.log;
error_log /var/log/nginx/somedomain.com-error.nginx.log debug;
location ~* \.php.$ {
# Proxy all requests with an URI ending with .php*
# (includes PHP, PHP3, PHP4, PHP5...)
include /etc/nginx/fastcgi.conf;
}
# all other files
location / {
root /var/www/somedomain.com;
try_files $uri $uri/ ;
}
error_page 404 /errors/404.html;
location /errors/ {
alias /var/www/errors/;
}
#this loads custom logging configuration which disables favicon error logging
include /etc/nginx/drop.conf;
}
Diese Domain ist eine einfache statische HTML-Site, die nur zu Testzwecken verwendet wird. Ich würde erwarten, dass die error_page-Direktive als Reaktion darauf aktiviert wird, dass PHP-FPM bestimmte Dateien nicht finden kann, da ich fastcgi_intercept_errors aktiviert habe. in http block und nave error_page eingerichtet, aber ich vermute die anfrage schlägt schon vorher irgendwo auf interne umleitungen fehl. Jede Hilfe wäre sehr dankbar.
Antworten:
Der Täter ist:
try_files $uri $uri/ ;
http://nginx.org/r/try_files (Beachten Sie, dass der letzte Parameter der Rückkehrcode oder der URI zur internen Umleitung ist.)
quelle
$uri/
? Siehe Parameter hier: github.com/roots/trellis/blob/…Wie andere gesagt haben, ist dies der Schuldige:
Es wird eine Umleitungsschleife erstellt, da der letzte Parameter von
try_files
auf den Speicherort verweisen sollte, wenn die Datei nicht gefunden wird. Ich habe es gelöst, indem ich a hinzugefügt=404
habe:quelle