【发布时间】: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 中修复。然而,我仍然面临这个问题——这让我认为可能存在完全不同的问题。
问题
- 正如我在别处所读到的,Apache 可能无法完美地为自定义 HTTP 状态代码传递代码。 But isn't HTTP 429 as a part of additional HTTP status codes RFC, a standard code enough to be recognised and relayed?
- 我在这里遗漏了什么重要的东西吗?
PS:由于这个问题更多的是关于 HTTP 状态规范,所以我在这里问。如果社区对 apache 有更多看法,请随时投票将问题移至 Server Fault。
【问题讨论】:
标签: apache curl proxy http-status-code-429