バックグラウンド
Apache リバース プロキシ経由でクライアントに公開される JBoss でアプリケーションを実行しています。最近、高速なリクエストを遅くするために「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 Client は、どういうわけか 500 を取得します。
Bugzilla #900827 で数年前に報告されたバグもあります。2.2.18 で修正されたと読んだことを覚えています。それでも、私はまだ問題に直面しています。おそらく、まったく別の問題があると思います。
質問
- 他の場所で読んだように、Apache はカスタム HTTP ステータス コードのコードを完全にリレーしない可能性があります。しかし、追加の HTTP ステータス コード RFC の一部としての HTTP 429 は、認識して中継するのに十分な標準コードではないでしょうか?
- ここで見逃している重要なものはありますか?
PS: この質問は HTTP ステータス仕様に関するものなので、ここで質問しました。コミュニティが apache にもっと関心を持っている場合は、お気軽に投票して、質問を Server Fault に移動してください。