Im Folgenden finden Sie ein Beispiel für eine Nginx-Serverkonfiguration. Ohne den Positionsblock "magischer Talisman" führt der Proxy-Fehlerinhalt dazu, dass eine Nginx 404-Seite und nicht die angepasste Fehlerseite bereitgestellt wird.
Durch Entfernen der Anweisung proxy_intercept_errors wird eine ordnungsgemäße Proxy-Fehlerseite mit den richtigen http-Fehlercode-Headern bereitgestellt.
Nicht-fehlerhafte Fehlerseiten werden unabhängig von der Anwesenheit des magischen Talismans ordnungsgemäß gerendert.
Irgendwelche Ideen, was genau los ist?
server {
server_name mydomain.com "";
listen 80;
root /var/www;
error_page 400 401 402 403 404 500 501 502 503 504 /admin/error_page.htm;
proxy_intercept_errors on;
location /proxy/ {
proxy_read_timeout 60s;
proxy_set_header Host $host;
proxy_pass http://myservers;
}
location /test404/ {
return 404;
}
location /admin/ { # this line constitute a magical talisman that fixes proxied error interception(???)(!)
rewrite ^(/admin)(.*)$ /admin$2 break;
}
}
quelle