502 “Erro ao ler do servidor remoto” quando erros de serviço upstream

2

Eu tenho o apache configurado como um proxy reverso. Quando o serviço upstream tem um erro (por exemplo, 500), o erro não é retornado ao cliente, mas, em vez disso, o apache exibe um erro 502 "Erro ao ler do servidor remoto".

Eu gostaria que o erro original fosse retornado ao cliente.

N.B. quando o serviço upstream funciona corretamente (200 OK), o apache retorna a resposta conforme o esperado. 500 respostas são mascaradas.

A chamada do serviço upstream retorna diretamente a resposta e o conteúdo corretos de 500 sem problemas.

Isso é o que temos agora:

ProxyPass "/path" "http://host:port/path"
ProxyPassReverse "/path" "http://host:port/path"

E a resposta quando o serviço retorna 500

Bad Gateway!
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /path/to/resource.
Reason: Error reading from remote server
If you think this is a server error, please contact the webmaster.
Error 502
publichostname
Apache/2.4.6 (Linux/SUSE) 

Existe alguma alteração na configuração do apache que permitirá ao apache encaminhar a resposta original, independentemente do código de status?

    
por DJL 22.02.2017 / 15:41

1 resposta

1

Você precisa instalar pelo menos 2.4.16.

Esse comportamento foi um bug na versão que você está usando, corrigido em 2.4.13 (não liberado)

*) mod_proxy: Não coloque o trabalhador em estado de erro para erros 500 ou 503      retornado pelo backend, a menos que o failonstatus esteja configurado para. PR 56925.      [Yann Ylavic]

    
por 24.02.2017 / 12:08