Как указать 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 могут действовать как "тупой канал", который может соответствовать вашим потребностям.