【发布时间】:2019-01-23 14:03:47
【问题描述】:
我遇到的问题可能只是对该功能的工作原理的根本误解,但我还是想问一下。我正在尝试从代理模块启用ProxyErrorOverride 指令,同时使用两个反向代理(一个在根目录,一个在/api)。我们希望能够为一系列 4xx 和 5xx 状态代码返回自定义错误页面(通过 ErrorDocument 指令)。然而,我们希望能够将一些状态代码作为从 API 显式发送的错误传递给我们的 Web 应用程序。
目前,每当我打开 ProxyErrorOverride 指令时,我们确实会看到某些状态代码被路由到我们的通用错误页面,但我们尝试通过的状态代码(通过不声明 ErrorDocument 指令)似乎返回正确的状态代码(例如:418),但使用通用的 apache 响应主体,其中包含“418 Unknown reason contact your admin@domain.com..blah blah”之类的内容。
有什么方法可以告诉 Apache 我想通过代理保留响应正文,还是它总是被 Apache 丢弃?
在某些情况下,我使用的是官方的 2.4.33 httpd docker base,即使是最基本的 Apache 配置也能够重现此行为。我尝试单步执行一些源代码(我没有写很多 C),据我所知,丢弃响应主体似乎是默认行为,唯一的覆盖是自定义响应。
希望对此进行澄清。是否可以通过将 ProxyErrorOverride 指令设置为 On 的错误消息?
我看到了这个帖子: Make apache mod_proxy ProxyErrorOverride include original page contents with mod_include
这似乎也暗示只有 SSI 响应可以使用ProxyErrorOverride On 提供服务,是否有任何可以引用的文档或资源来证实这一点?有任何基于 Apache 的解决方法吗?
【问题讨论】: