HAproxy:在后端重定向到https

时间:2017-05-03 11:49:41

标签: redirect haproxy

我的工作场所有一个HAproxy,我们用它来路由到只需要一个公共IP的网络服务器。我们的一些客户希望https有些不需要。

我想在每个后端基础上强制执行https。

我发现了这一点,只是没有说这个配置是用于前端还是后端。也许这对两者都有效?

  

http-request重定向位置[code] [] []

或者这个:

  

模式http

     

重定向方案https if!{ssl_fc}

所以我认为我把它放在了一些后端:

  

http请求重定向位置https://www.somedomain.com [代码301]

这会有用吗?我们的实验室环境被束缚所以我无法及时测试它。

2 个答案:

答案 0 :(得分:3)

我创建了自己的测试后端.. 这有效:

backend lb_customername
          mode http
          redirect scheme https if !{ ssl_fc }

          balance roundrobin

          server server1 10.0.0.51:80 maxconn 200
          server server2 10.0.0.52:80 maxconn 200

答案 1 :(得分:0)

来自the HAProxy documentation for redirect scheme

May be used in sections
defaults    no
frontend    yes
listen      yes
backend     yes

所以这将起作用(从工作部署中复制)

backend https_for_all_traffic
    redirect scheme https if !{ ssl_fc }

    server https_only 10.21.5.73:80

由于!{ ssl_fc }检查基本上只是另一个ACL,您甚至可以将其与其他ACL组合并仅转发某些流量:

backend https_for_some_traffic
    # Detect traffic to admin pages
    acl secure    url_beg    /admin

    # Force any HTTP admin traffic to HTTPS
    #  the conditions are combined with an implicit AND
    redirect scheme https if !{ ssl_fc } secure

    server both_http_and_https 10.21.5.73:80