HAProxy通配符SSL后端转发问题

时间:2014-03-07 06:35:41

标签: ssl wildcard virtualhost haproxy

我正在使用HAProxy 1.5-dev21。我购买了通配符SSL(例如:* .foo.com)。 我希望来自Internet端口443的所有流量都将根据域名重定向到内部网络,后端服务器是许多运行HTTP的Web服务器(例如:abc.foo.com:443 - > 192.168.10.10:80,edf.foo。 com:443 - > 192.168.10.11:80) 但是,无论传入的域名是什么,HAProxy都会将所有流量传递给默认后端。

如果我不使用SSL,我的配置运行良好 以下是我的简化配置文件:

global
    log     127.0.0.1 local0
    log     127.0.0.1 local1 notice
    maxconn 4096

defaults
    log     global
    mode    http
    option  tcplog
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

frontend https-in
    mode tcp
    bind :443 ssl crt /etc/haproxy/foo.com.pem
    use_backend abc if { hdr_end(host) -i abc.foo.com }
    use_backend def if { hdr_end(host) -i def.foo.com }
    default_backend application-backend

backend abc
    mode tcp
    server Server1 192.168.10.10:80

backend def
    mode tcp
    server Server2 192.168.10.11:80

backend application-backend
    mode tcp
    server server3 192.168.10.12:80

2 个答案:

答案 0 :(得分:0)

您在尝试访问HTTP内容时使用的是tcp模式。 请启用“模式http”,它应该可以正常工作。

巴普蒂斯特

答案 1 :(得分:0)

如果您拥有SSL,则无法使用hdr_end。我是这样做的:

frontend domain.com
        bind 10.50.81.131:443 ssl crt domain.com ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP
        bind 10.50.81.131:80
        mode http
        maxconn 300
        option httpclose
        option forwardfor
        reqadd X-Forwarded-Proto:\ https if { ssl_fc }
        use_backend first_farm if { ssl_fc_sni sub1.domain.com }
        use_backend second_farm if { ssl_fc_sni sub2.domain.com }
        default_backend default_farm