2011-06-17 77 views
1

我正在使用Apache ProxyPass將一些請求從我的服務器(1)傳遞到另一個(2)。這對大多數請求都可以正常工作,但是當服務器2處理POST請求併發送重定向頭時,這將直接傳遞給客戶端,客戶端然後在服務器1上應用重定向,從而得到一個404.代理通行證:遵循服務器上的重定向

那麼,我想要的是服務器1(具有ProxyPass的服務器)遵循服務器2上的重定向,並將最後一頁傳回客戶端。

我相信這肯定是一個很常見的情況,但我似乎無法找到解決方案。我想象的就像是一個「follow_redirects」標誌,就像你應用於curl客戶端一樣,但我沒有發現類似的東西。也許我想要做的不是ProxyPass的目的?

有人能指出我在正確的方向嗎?

謝謝, 克里斯

回答

2

退房的ProxyPassReverse指令。有了這套Apache可以攔截重定向並重寫它們,以便客戶端不會離開代理。這不會處理代理上的重定向,但它至少會使客戶端將重定向的請求發送回服務器而不是離開您。

+0

謝謝埃米爾。我實際上配置了ProxyPassReverse指令,但後端服務器未發送完全限定的位置重定向,因此它們的解釋不正確。現在它可以工作。乾杯 – Chris

1

我找到了Apache Traffic Server,這是一個由雅虎製作的反向代理並授予Apache基金會。

this documentation

原始服務器經常發送重定向響應返回到瀏覽器 他們重定向到不同的頁面。例如,如果原始服務器 過載,則可能會將瀏覽器重定向到裝載較少的服務器。原始服務器也在重定向到移動到 不同位置的網頁時。當流量服務器配置爲反向 代理服務器時,它必須從原始服務器重新導向重定向,以便 瀏覽器被重定向到流量服務器,而不是另一個來源 服務器。

我還沒有嘗試過,但有Debian,Ubuntu和CentOS的軟件包。