Как указать httpd сохранить прокси-сообщение об ошибке?

У меня есть httpd-сервер, передающий запросы на 2 разных сервера Tomcat. Один из моих серверов обрабатывает аутентификацию и возвращает определенный код ошибки http 521, когда у пользователя уже есть запущенный сеанс.

Моя проблема заключается в том, что httpd автоматически сопоставляет этот код ошибки 521 с 500 (внутренняя ошибка сервера), и тогда мой клиент не может обработать его должным образом.

Я пытался отключить ProxyErrorOverride, чтобы удалить /error/HTTP_INTERNAL_SERVER_ERROR.html.var но это ничего не меняет.

Как я могу попросить httpd ничего не менять в прокси-сообщении?

<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>

заранее спасибо

  • httpd 2.2.22 (Win32) mod_ssl
  • кот 7,25
  • Windows 7 64-бит

1 ответ

Решение

521 не является допустимым кодом ответа HTTP, и Apache будет нарушать спецификацию HTTP, возвращая его.

Взгляните на журнал ошибок Apache - на самом деле он может задыхаться от кода ответа, получаемого из бэкэнда, и выдавать ошибку клиенту, а не отображать 5xx код для 500,

Я бы настоятельно рекомендовал не использовать коды ответов HTTP, как этот, но HAProxy или Varnish могут действовать как "тупой канал", который может соответствовать вашим потребностям.

Другие вопросы по тегам