Voici un exemple de configuration de serveur Nginx. Sans le bloc d'emplacement "talisman magique", le contenu d'erreur mandaté entraîne une page Nginx 404 plutôt que la page d'erreur personnalisée servie.
La suppression de la directive proxy_intercept_errors sert une page d'erreur proxy appropriée avec des en-têtes de code d'erreur http appropriés.
Les pages d'erreur non proxy sont restituées correctement indépendamment de la présence du talisman magique.
Des idées sur ce qui se passe exactement?
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;
}
}
la source