1 votes

Comment indiquer à httpd de conserver le message d'erreur proxié ?

J'ai un serveur httpd qui envoie les requêtes à deux serveurs tomcat différents. Un de mes serveurs gère l'authentification et renvoie un code d'erreur http spécifique 521 lorsque l'utilisateur a déjà une session en cours.

Le problème est que httpd transforme automatiquement ce code d'erreur 521 en 500 (erreur interne du serveur) et que mon client ne peut pas le traiter correctement.

J'ai essayé de désactiver ProxyErrorOverride pour enlever le /error/HTTP_INTERNAL_SERVER_ERROR.html.var mais cela ne change rien.

Comment puis-je demander à httpd de ne rien changer au message proxié ?

<IfModule proxy_module>
ProxyPass       /context1      http://127.0.0.1:8001/context1
ProxyPass       /context2      http://127.0.0.1:8002/context2
ProxyPreserveHost Off
ProxyErrorOverride Off
</IfModule>

Merci d'avance

  • httpd 2.2.22 (Win32) mod_ssl
  • tomcat 7.25
  • Windows 7 64 bits

2voto

Shane Madden Points 112034

521 n'est pas un code de réponse HTTP valide, et Apache violerait la spécification HTTP en le renvoyant.

Jetez un coup d'œil au journal des erreurs d'Apache : il se peut que le code de réponse qu'il reçoit du backend l'étouffe et qu'il envoie une erreur au client, et non pas qu'il mette en correspondance le code de réponse et le code de réponse. 5xx code pour 500 .

Je vous déconseille fortement d'abuser des codes de réponse HTTP de cette manière, mais HAProxy ou Varnish ont tous deux la capacité d'agir comme un "dumb pipe", ce qui pourrait répondre à vos besoins.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X