首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HAProxy -将一个域重定向到https,将其他域重定向到http

HAProxy -将一个域重定向到https,将其他域重定向到http
EN

Stack Overflow用户
提问于 2016-02-01 12:06:49
回答 1查看 2.9K关注 0票数 0

我使用专用服务器托管Centos和WHM上的4个域和3个子域名。最近计划使用HAProxy在它们之间进行负载均衡。

我试图实现的是使用前端的将一个特定域名的所有流量重定向到https,因为我在HAProxy终止了该特定域名的HAProxy。

下面是我用过的

代码语言:javascript
复制
frontend www-https
    bind haproxy_www_public_IP:443 ssl crt /etc/ssl/private/example.com.pem
    reqadd X-Forwarded-Proto:\ https
    default_backend www-backend


backend www-backend
    redirect scheme https if !{ ssl_fc }
    server www-1 www_1_private_IP:80 check
    server www-2 www_2_private_IP:80 check

我已经在谷歌上搜索了解决方案,但大多数可用的解决方案都告诉我将所有流量重定向到https或http。

EN

回答 1

Stack Overflow用户

发布于 2016-02-02 13:03:43

如果我理解正确的话,您希望一个域(在下面的配置中是httpsonlydomain.com)只能通过https访问,并且对该域的所有http请求都转发到https上。对于其他域,它们可以通过http或https工作,而不需要转发。最后,我假设所有四个域(包括httpsonlydomain.com)都将使用www-backend后端。

如果是这样的话,下面的代码应该能起到作用:

代码语言:javascript
复制
frontend www-http
    bind haproxy_www_public_IP:80
    acl https_domain hdr(host) -i httpsonlydomain.com
    redirect scheme https if !{ ssl_fc } https_domain
    default_backend www-backend

frontend www-https
    bind haproxy_www_public_IP:443 ssl crt /etc/ssl/private/example.com.pem
    default_backend www-backend

backend www-backend
    server www-1 www_1_private_IP:80 check
    server www-2 www_2_private_IP:80 check

希望这能有所帮助。

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

https://stackoverflow.com/questions/35122858

复制
相关文章

相似问题

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