2014-07-16 79 views
3

背景Apache的反向代理更改狀態代碼

我們一直運行的是通過Apache的反向代理暴露給客戶JBoss上的應用程序。我們最近引入了「HTTP 429太多請求」來減緩高速請求。


問題

然而,似乎Apache2的變化,從429到500

根源分析

  • 確認從JBoss的,它的HTTP狀態碼通過繞過代理髮送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| 
    
  • 捲曲客戶端得到500,不知何故。

還有一個bug filed few years back on Bugzilla #900827。我記得在2.2.18中已經修復了它。然而,我仍然面臨這個問題 - 這導致我認爲可能完全是另一個問題。

問題

PS:由於這個問題更多的是關於HTTP狀態規範,我在這裏問。如果社區對Apache更感興趣,請隨時投票將問題轉移到Server Fault。

回答

3

我只是偶然發現了你的問題,因爲我再一次研究一個類似的問題,在我們的Apache反向代理服務器上的ActiveSync響應449

返回500個狀態碼我也發現你所提到的Bugzilla的進入和它應該已經在2.2.18版本中得到修復,但是我們使用2.2.22並仍然面臨這個問題。

進一步閱讀Bugzilla條目中的評論後,導致apache bug entry #44995。閱讀這些評論,特別是最後一個領我到相信這個問題,特別是與自定義錯誤代碼,而狀態消息有被固定在任何2.2.x的版本,但包括在2.3/2.4

所以我們繼續並將我們的反向代理更新爲2.4版本,令我們驚訝的是代理正確傳遞了錯誤代碼449。

正如你沒有提到你使用的apache2版本,我只能猜測更新到2.4或2。3可能是您可能的解決方案。

+0

歡迎來到StackOverflow!我會嘗試更新我的apache2版本。感謝您的回答 :) – SuperSaiyan