Apache ProxyPass 似乎沒有代理來自遠端主機的內容

Apache ProxyPass 似乎沒有代理來自遠端主機的內容

我試圖在“主”站點上的 URL 上創建到遠端站點“東”的代理,但我陷入了重定向循環。這不是我所期望的行為 - 我知道 ProxyPass 會將內容重寫為 URL,但我認為它的行為就像重定向到「主」主機一樣。

應用的設定檔非常簡單:

user@master:/etc/apache2/conf-enabled# cat multisite_proxy.conf
<Location /prod_east>
        ProxyPass http://east.domain.com/prod_east
        ProxyPassReverse http://east.domain.com/prod_east
</Location>

使用 cURL,我的輸出如下:

user@master:~# curl -IL https://master.domain.com/prod_east/
HTTP/1.1 302 Found
Date: Thu, 17 Dec 2020 22:58:41 GMT
Server: Apache/2.4.38 (Debian)
Location: https://master.domain.com//prod_east/
Content-Type: text/html; charset=iso-8859-1

...

curl: (47) Maximum (50) redirects followed

east 上的 Apache 日誌顯示 cURL 的請求。

如果我瀏覽,http://east.domain.com/prod_east我會被重定向到應用程式的登入頁面(這是我所期望的)。用 cURL 檢查一下,我發現:

user@master:~# curl -IL http://east.domain.com/prod_east
HTTP/1.1 302 Found
Date: Thu, 17 Dec 2020 23:17:38 GMT
Server: Apache/2.4.38 (Debian)
Location: https://east.domain.com//prod_east
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 302 Found
Date: Thu, 17 Dec 2020 23:17:38 GMT
Server: Apache
Location: https://east.domain.com/prod_east/subpath/
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 302 FOUND
Date: Thu, 17 Dec 2020 23:17:38 GMT
Server: Apache
Vary: Cookie
Cache-Control: no-cache
**Location: /prod_east/subpath/login.py?_origtarget=index.py**
Content-Type: text/html; charset=UTF-8

最後一個 Location: 條目讓我想知道:它告訴客戶端重定向到,但我希望由於 ProxyPass 規則/prod_east/而發出請求。east.domain.com

代理模組已啟用,重寫模組也已啟用。

有什麼幫助嗎?我顯然不明白這裡的東西......

提前致謝。

答案1

這裡的問題是「東部」網站強制重定向到 HTTPS,且 Apache 未配置為代理 TLS 內容。在「master」上啟用 SSLProxy 並更新multisite_proxy.conf為引用 https(從而跳過 HTTP->HTTPS 重定向)後,現在可以正常工作了。

相關內容