mod_proxy ProxyErrorOverride On 始终丢弃响应正文

mod_proxy ProxyErrorOverride On always discards response body

我遇到的问题可能只是对该​​功能工作原理的根本误解,但我还是想问一下。我正在尝试启用来自代理模块的 ProxyErrorOverride 指令,同时使用两个反向代理(一个在根目录,一个在 /api)。我们希望能够 return 自定义 ErrorPages(通过 ErrorDocument 指令)用于 4xx 和 5xx 状态代码的范围。然而,我们希望能够将一些状态代码作为从 API 明确发送的错误传递给我们的 Web 应用程序。

目前,每当我打开 ProxyErrorOverride 指令时,我们确实会看到某些状态代码被路由到我们的通用错误页面,但是我们尝试传递的状态代码(通过不声明 ErrorDocument指令)似乎返回了正确的状态代码(例如:418),但使用了一个通用的 apache 响应主体,上面写着类似“418 Unknown reason contact your admin@domain.com..blah blah”的内容.

有什么方法可以告诉 Apache 我想通过代理保留响应主体,还是总是被 Apache 丢弃?

在某些情况下,我使用的是官方 2.4.33 httpd docker 基础,即使是最基本的 Apache 配置也能够重现此行为。我尝试逐步浏览一些源代码(我没有写很多 C),据我所知,丢弃响应主体似乎是默认行为,唯一的覆盖是自定义响应。

希望得到一些澄清。是否可以通过将 ProxyErrorOverride 指令设置为 On 的错误消息传递?

我看到了这个 post: Make apache mod_proxy ProxyErrorOverride include original page contents with mod_include

这似乎也暗示只有 SSI 响应可以通过 ProxyErrorOverride On 提供,是否有任何可以引用的文档或来源可以证实这一点?任何基于 Apache 的解决方法?

据我了解,ProxyErrorOverride 会覆盖从 400 上方的来源收到的任何回复。

不能排除特定的。