【问题标题】:Apache Reverse Proxy changes status codeApache 反向代理更改状态代码
【发布时间】:2014-09-06 15:50:42
【问题描述】:

背景

我们一直在 JBoss 上运行一个应用程序,该应用程序通过 Apache 反向代理 向客户端公开。我们最近引入了“HTTP 429 Too many requests”来减慢高速请求。


问题

但是,apache2 似乎将 HTTP 状态码从 429 更改为 500。

根本原因分析

  • 从 JBoss 确认它发送 HTTP 429,绕过代理,直接与它对话。

  • 从 /var/log/apache2/access.log 确认,apache2 获得 HTTP 429

     10.0.0.161 - - [16/Jul/2014:07:27:47 +0000] "POST /the/URL/ HTTP/1.1" 429 1018 "-" "curl/7.36.0" |0/466110|
    
  • Curl 客户端以某种方式获得 500。

还有一个bug filed few years back on Bugzilla #900827。我记得读到它已在 2.2.18 中修复。然而,我仍然面临这个问题——这让我认为可能存在完全不同的问题。

问题

PS:由于这个问题更多的是关于 HTTP 状态规范,所以我在这里问。如果社区对 apache 有更多看法,请随时投票将问题移至 Server Fault。

【问题讨论】:

    标签: apache curl proxy http-status-code-429


    【解决方案1】:

    我刚刚偶然发现了您的问题,因为我再次研究了一个类似的问题,我们的 Apache 反向代理在 ActiveSync 响应 449 上返回了 500 状态代码。

    我还找到了您提到的 Bugzilla 条目以及它应该在 2.2.18 版本中修复的声明,但是我们使用 2.2.22 并且仍然遇到问题。

    在进一步阅读 Bugzilla 条目中的 cmets 后,该条目将导致 apache bug entry #44995。阅读这些 cmets,尤其是最后一个,让我相信这个问题,尤其是没有状态消息的自定义错误代码,在任何 2.2.x 版本中得到修复,但包含在 2.3/2.4

    因此,我们继续将反向代理更新为 2.4 版本,令我们惊讶的是,错误代码 449 被代理正确传递。

    由于您没有提到您使用的 apache2 版本,我只能猜测更新到 2.4 或 2.3 可能是您可能的解决方案。

    【讨论】:

    • 欢迎来到 StackOverflow!我会尝试更新我的 apache2 版本。谢谢你的回答:)
    猜你喜欢
    • 2011-07-13
    • 1970-01-01
    • 2010-09-16
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多