嘿嘿。我将 mod_proxy 与 apache2 一起使用,为在本地计算机上运行的多个 servlet 应用程序提供 vhost 能力。在大多数情况下,它工作正常。请求进入 apache,然后被定向到绑定(bind)在本地主机端口上的应用程序。应用程序接收请求并做出响应,然后由 apache 将请求返回给客户端。
我遇到的问题是应用程序提供 500 的错误,而 mod_proxy 踩踏它们。通常这些错误是在 ajax 请求中引起的,并且错误是在客户端 javascript 中处理的。例如,对服务器端 createObject(name) 的调用可能会抛出 NameNotUniqueException ,它会作为 500 返回。然后客户端 javascript 可能会显示适当的错误消息。
当应用程序抛出错误(导致对 mod_proxy 的 500 响应)时,apache 会踩踏错误消息并返回
500 内部服务器错误
内部服务器错误
服务器遇到内部错误或 配置错误,无法完成 您的要求。
.. 库存 Apache 服务器端错误消息。
我希望 mod_proxy 将原始 500 传递回客户端。有没有我错过的指令可以防止破坏 500?
TIA
最佳答案
你有吗
ProxyRequests Off
ProxyErrorOverride Off
ProxyPass /path/ http://backend.ip/path/
ProxyPassReverse / http://backend.domain/
用您的值替换 backend.ip 和 backend.domain(我在这里使用 backend.ip,因为它可以防止 apache 在每个请求上运行 dns 查询)。
通常会按原样报告错误。因为 ProxyErrorOverride 默认是关闭的。如果我的配置没有发生这种情况,请检查 500 是否真的来自您的后端服务器。或者只是向我们展示您的完整代理配置。
关于apache - 使用 apache mod_proxy 时应用程序错误直通,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2531895/