Код статуса HTTP, возвращаемый Apache, настроенным как прокси-сервер с директивой proxytimeout

Код статуса HTTP, возвращаемый Apache, настроенным как прокси-сервер с директивой proxytimeout

У меня есть общий вопрос о поведении веб-сервера Apache, который настроен как прокси-сервер и имеет директивуProxyTimeoutдля целей тестирования установлено значение 1 секунда.

Мой внутренний (upsteam) сервер — это встроенный HTTP-сервер Python, который намеренно ждет дольше 1 секунды, чтобы отправить ответ прокси-серверу (вышеупомянутому Apache), и отправляет его через 3 секунды после получения запроса.

Согласно официальной документации Apache(https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxytimeout)

прокси должен ждать ответа от внутреннего сервера в течение времени, указанного вProxyTimeoutдиректива, и если ответа нет, она должна «возвратить тайм-аут», что, насколько я понимаю, является кодом состояния 504, поскольку спецификация этого кода состояния гласит:
504 Gateway Timeout — сервер действовал как шлюз или прокси-сервер и не получил своевременного ответа от вышестоящего сервера..

Тем не менее, когда я отправляю запросы на прокси-сервер, он возвращает код ошибки 502, который указывает на то, что прокси-сервер получает недопустимый ответ от вышестоящего сервера.

Итак, я пытаюсь понять, почему это происходит. Почему код статуса 502 вместо 504, когда с вышестоящим сервером все в порядке, он просто не может ответить серверу из-за истекшего таймаута?

Журналы ошибок Apache корректно сообщают:

[proxy_http:error] [pid 6040] (70007)The timeout specified has expired: [client 192.168.56.1:53331] AH01102: error reading status line from remote server 127.0.0.1:8080"

Вышестоящий сервер бэкэнда выдает ошибку BrokenPipeError, которую я перехватываю в исключении и не допускаю сбоя, поэтому, насколько мне известно, это не должно быть ошибкой сервера, а скорее ожидаемым поведением, поскольку соединение закрывается через 1 секунду, и отправлять его некуда.

Может быть, кто-то поможет мне понять, что может быть причиной такого поведения и почемуProxyTimeoutне заставляет Apache возвращать ошибку 504, что логично согласно документации?

Заранее спасибо!

Связанный контент