只将一个域的流量重定向到https和其他域

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

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

这是我用过的

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。


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

如果是这种情况,那么这应该做的伎俩:

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

希望有所帮助。

链接地址: http://www.djcxy.com/p/62733.html

上一篇: Redirect traffic of one domain to https and other domains to http only

下一篇: OAuth token validation from HAProxy or Apache mod