Proxy

如何告訴 httpd 保留代理錯誤消息?

  • November 17, 2012

我有一個 httpd 伺服器將請求代理到 2 個不同的 tomcat 伺服器。當使用者已經有一個正在執行的會話時,我的一個伺服器處理身份驗證並返回一個特定的 http 錯誤程式碼 521。

我的問題是 httpd 自動將此 521 錯誤程式碼映射到 500(內部伺服器錯誤),然後我的客戶端無法正確處理它。

我試圖禁用ProxyErrorOverride, 以刪除,/error/HTTP_INTERNAL_SERVER_ERROR.html.var但它不會改變任何東西。

如何要求 httpd 不對代理消息進行任何更改?

<IfModule proxy_module>
ProxyPass       /context1      http://127.0.0.1:8001/context1
ProxyPass       /context2      http://127.0.0.1:8002/context2
ProxyPreserveHost Off
ProxyErrorOverride Off
</IfModule>

提前致謝

  • httpd 2.2.22 (Win32) mod_ssl
  • Tomcat 7.25
  • 視窗 7 64 位

521不是有效的 HTTP 響應程式碼,Apache 會通過返回它來違反 HTTP 規範。

看看 Apache 的錯誤日誌——它實際上可能會阻塞從後端獲取的響應程式碼並向客戶端拋出錯誤,而不是將5xx程式碼映射到500.

我強烈建議不要濫用這樣的 HTTP 響應程式碼,但 HAProxy 或 Varnish 都具有充當“啞管道”的能力,這可能符合您的需求。

引用自:https://serverfault.com/questions/449427