Je suis en train de bricoler un serveur et j'ai fait d'un des sous-domaines un proxy pour un service qui n'est pas toujours opérationnel. Le site server
Le bloc ressemble :
server {
server_name servlet.example.org;
error_page 502 /error/down.html;
location / {
proxy_pass http://127.0.0.1:12510;
proxy_redirect default;
proxy_intercept_errors on;
}
location /error/ {
root /path/to/servlet;
autoindex off;
}
}
Cela sert /path/to/servlet/error/down.html
à toute demande lorsque le service est en panne et c'est génial.
Mon problème est que je voudrais que toute demande externe à l'entreprise /error/
retourner un code d'état 403, avec une page d'erreur personnalisée, par exemple forbidden.html
que l'on trouve également dans le /error/
dossier. Le site internal
semble être ce que je veux, mais elle renvoie 404s. Je ne peux pas remplacer les erreurs 404 sur l'ensemble du serveur par des 403 avec la directive error_page
car le service peut renvoyer ses propres 404 et j'aimerais préserver cela.
Est-ce possible ? Comment dois-je m'y prendre ? J'ai essayé des combinaisons apparemment significatives de internal
y error_page
mais ne peut aller nulle part.
En dehors de cela, puis-je au moins signifier une 403 à tout ce qui serait autrement 404 dans /error/
? Je veux dire down.html
y forbidden.html
s'affichent normalement, mais tout le reste reçoit un 403 et s'affiche. forbidden.html
.