Apache-2.2

防止 HAProxy 將 HTTP 重定向到 HTTPS

  • February 24, 2016

我正在使用 HAproxy 在 Apache 伺服器之間負載平衡請求。我正在嘗試為特殊案例(提供 kickstart 文件)禁用 HTTPS,並且我正在使用埠 8000 來執行此操作。我有一個 HAProxy 配置,大致如下(省略了一些配置):

frontend provision_frontend_b
       bind 10.1.1.1:8000
       mode http
       default_backend provision_backendb


backend provision_backendb
       mode http
       server server1 127.0.0.1:8000 weight 1
       server server2 10.1.1.2:8000 weight 1

我希望 HAProxy 將向埠 8000 上的外部 IP 發出的請求重定向到埠 8000 上的環回地址,在那裡我有 Apache 監聽。Apache 配置為通過 HTTP 提供靜態文件。

奇怪的是,當我使用前端的 DNS 名稱從瀏覽器訪問伺服器時:http://myhost.mydomain:8000,我被重定向到 HTTPS 和 SSL 證書錯誤。當我嘗試使用 IP http://10.1.1.1:8000時,它可以工作(並且不會重定向到 HTTPS)。

HAProxy 有什麼理由這樣做嗎?它似乎不是 Apache,因為我已將 HAProxy 配置為重定向到其他僅支持 HTTP 的 Apache 伺服器,但仍然收到此錯誤。

我在 HAProxy 配置中看到的唯一內容是另一個配置為重定向到 SSL 的前端:

frontend http_frontend
       bind :80
       mode http
       redirect scheme https if !{ ssl_fc }

但是,它正在偵聽不同的埠。我試圖將重定向註釋掉,但沒有解決問題。

不,它不是 Haproxy。Haproxy 與您的 https 重定向無關。看起來myhost.mydomain已記憶體在您的網路瀏覽器中,用於內部 307 重定向。這將始終以 https 模式發送您的流量。清除瀏覽器中的記憶體和cookie,它應該可以工作。我不確定您是否可以從伺服器端做任何事情,我曾經遇到過這個問題,我嘗試強制重定向到 http 方案,但隨後出現了許多重定向錯誤

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