防止 HAProxy 将 HTTP 重定向到 HTTPS

防止 HAProxy 将 HTTP 重定向到 HTTPS

我正在使用 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 }

但是,它正在监听不同的端口。我尝试注释掉重定向,但问题并未解决。

答案1

不,这不是 Haproxy。Haproxy 与您的 https 重定向无关。看起来我的主机.我的域名缓存在您的 Web 浏览器中,用于内部 307 重定向。这将始终以 https 模式发送您的流量。清除浏览器中的缓存和 cookie,它应该可以工作。我不确定您是否可以从服务器端做任何事情,我曾经遇到过这个问题,我尝试强制重定向到 http 方案,但然后太多重定向错误出现了。

相关内容