A continuación se muestra una configuración de servidor Nginx de muestra. Sin el bloque de ubicación "talismán mágico", el contenido de error proxy genera una página Nginx 404 en lugar de la página de error personalizada que se sirve.
La eliminación de la directiva proxy_intercept_errors sirve una página de error proxy adecuada con encabezados de código de error http adecuados.
Las páginas de error no representadas se representan correctamente independientemente de la presencia del talismán mágico.
¿Alguna idea de lo que está pasando exactamente?
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;
}
}
fuente