mod_proxy ProxyErrorOverride On始终丢弃响应正文

时间:2018-06-08 17:12:04

标签: apache mod-proxy

我遇到的问题可能只是对此功能如何运作的一个基本误解,但仍然想问。我正在尝试从代理模块启用ProxyErrorOverride指令,同时使用两个反向代理(一个在根,一个在/ api)。我们希望能够为一系列4xx和5xx状态代码返回Custom ErrorPages(通过ErrorDocument指令)。但是,我们希望能够将状态代码作为从API明确发送的错误传递给我们的Web应用程序。

此时,每当我打开ProxyErrorOverride指令时,我们都会看到某些状态代码被路由到我们的通用错误页面,但是我们尝试通过的状态代码(通过不声明ErrorDocument指令)似乎回来时使用了正确的状态代码(例如:418),但是使用了一个通用的apache响应体,它说的是" 418未知原因联系你的admin @ domain.com..blah blah&#34 ;。

有没有办法告诉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的解决方法?

1 个答案:

答案 0 :(得分:1)

根据我的理解,ProxyErrorOverride会覆盖从400以上的来源收到的任何响应。

不能排除特定的内容。