Código de status HTTP retornado pelo Apache configurado como proxy com diretiva proxytimeout

Código de status HTTP retornado pelo Apache configurado como proxy com diretiva proxytimeout

Tenho uma pergunta geral sobre o comportamento do servidor web Apache que está configurado como um servidor proxy e possui uma diretivaProxyTimeoutdefinido em 1 segundo para fins de teste.

Meu servidor back-end (upsteam) é um servidor HTTP integrado em Python que espera deliberadamente mais de 1 segundo para enviar a resposta ao servidor proxy (Apache mencionado acima) e a envia 3 segundos após receber a solicitação.

De acordo com os documentos oficiais do Apache(https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxytimeout)

o proxy deve aguardar a resposta do servidor back-end pelo período de tempo especificado emProxyTimeoutdiretiva e se não houver resposta ela deve "retornar um tempo limite" que é, pelo que entendi, um código de status 504, porque a especificação deste código de status diz:
504 Gateway Timeout - O servidor estava agindo como gateway ou proxy e não recebeu uma resposta oportuna do servidor upstream.

No entanto, quando envio solicitações ao servidor proxy, ele retorna o código de erro 502, que indica que o proxy recebe uma resposta inválida do servidor upstream.

Então tento entender por que isso acontece. Por que o código de status é 502 em vez de 504 quando o servidor upstream está ok, ele simplesmente não consegue responder ao servidor devido ao tempo limite expirado?

Os logs de erros do Apache informam corretamente:

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

O servidor backend upstream lança BrokenPipeError que eu capturo em uma exceção e não o deixo travar, então, pelo que sei, não deve ser culpa do servidor, mas sim do comportamento esperado porque a conexão é fechada após 1 segundo e não há para onde enviá-la .

Talvez alguém possa me ajudar a entender o que poderia ser a causa desse comportamento e por quêProxyTimeoutnão faz o Apache retornar 504 o que é lógico de acordo com a documentação?

Desde já, obrigado!

informação relacionada