我正在使用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
答案 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