首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有关通过HAproxy将http重定向到https的咨询

有关通过HAproxy将http重定向到https的咨询
EN

Stack Overflow用户
提问于 2021-09-18 06:36:00
回答 2查看 108关注 0票数 1

我正在尝试配置HAproxy,使其将http流量重定向到https,但Chrome失败并返回"ERR_SSL_PROTOCOL_ERROR“。但是,如果我直接使用https,它将会工作。

例如:如果我输入https://:5443,它将显示后端服务器的页面。如果我输入了http://:5006,它应该被重定向,但却失败了,出现了上面提到的错误。

下面是我的配置:

代码语言:javascript
复制
frontend    simple_webapp    
    mode    http
    bind    *:5006
    bind    *:5443  ssl crt /root/Downloads/simple_webapp_all.pem
    http-request redirect scheme https unless { ssl_fc }

    default_backend simple_webapp

backend simple_webapp
    balance     roundrobin
    server      centos8-1 <server ip1>:5006 check 
    server      centos8-2 <server ip2>:5006 check

如果有任何配置错误,请纠正我。

EN

回答 2

Stack Overflow用户

发布于 2021-09-18 11:17:31

您可能希望使用scheme更改端口,但事实并非如此,您对http://foo:5006/的请求被重定向到不支持https://foo:5006的SSL。如果您在URL中省略了端口,那么浏览器和web客户端就足够智能,可以将端口80用于HTTP,将443用于HTTPS。这就是它适用于默认端口的原因。因此,尝试将您的重定向更改为如下所示:

代码语言:javascript
复制
http-request redirect prefix https://your_domain_as_explicit_string:5443 unless { ssl_fc }

您可以尝试使用头文件,例如

代码语言:javascript
复制
http-request redirect prefix https://%[hdr(host),regsub(:5006,:5443)] unless { ssl_fc }

在本例中,hdr(host)包括:5006,因此使用regsub更改了这一点

票数 0
EN

Stack Overflow用户

发布于 2021-09-19 03:01:15

一旦我将端口从5006改为其他端口,它就可以正常工作。不知道这个港口发生了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69232221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档