Назад | Перейти на главную страницу

Как указать 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>

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

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

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

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