上游服务出错时,出现 502“从远程服务器读取错误”

上游服务出错时,出现 502“从远程服务器读取错误”

我已将 apache 设置为反向代理。当上游服务出现错误(例如 500)时,该错误不会返回给客户端,而是 apache 提供 502“从远程服务器读取时出错”。

我希望将原始错误返回给客户端。

注意:当上游服务正常运行(200 OK)时,apache 会按预期返回响应。500 响应被屏蔽了。

直接调用上游服务即可返回正确的 500 响应和内容,没有任何问题。

这就是我们现在所拥有的:

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

服务返回 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) 

是否存在一些 apache 配置更改,使得 apache 能够转发原始响应,而不管状态代码如何?

答案1

您至少需要安装 2.4.16。

此行为是您所用版本的一个错误,已在 2.4.13 中修复(未发布)

*) mod_proxy:除非配置了 failonstatus,否则不要将工作程序置于后端返回的 500 或 503 错误状态。PR 56925。[Yann Ylavic]

相关内容