Proxy
如何告訴 httpd 保留代理錯誤消息?
我有一個 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 都具有充當“啞管道”的能力,這可能符合您的需求。