![HAProxy SSL 直通,两个后端均有各自的主机名](https://linux22.com/image/765346/HAProxy%20SSL%20%E7%9B%B4%E9%80%9A%EF%BC%8C%E4%B8%A4%E4%B8%AA%E5%90%8E%E7%AB%AF%E5%9D%87%E6%9C%89%E5%90%84%E8%87%AA%E7%9A%84%E4%B8%BB%E6%9C%BA%E5%90%8D.png)
我正在尝试设置用于 SSL Pass Through 的 HAProxy 服务器。
要求是,我将获得请求,例如 api.mydomain.com、web.mydomain.com,在 HAProxy 中,我希望接收请求并根据它们的主机名转发到相关的后端。
使用以下配置,我的 HA 代理启动,当我访问 web.mydomain.com 时,我希望发送到 web.mydomain.com,但它会被发送到 api.mydomain.com。
以下是我的配置:
global
log 127.0.0.1 local2
local2.* /var/log/haproxy.log
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
stats socket /var/lib/haproxy/stats
defaults
mode tcp
log global
option tcplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
frontend localhost
bind *:443
option tcplog
mode tcp
default_backend api_nodes
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
acl ACL_api_mydomain.comhdr(host) -i api.mydomain.com
use_backend api_nodes if ACL_api_mydomain.com
acl ACL_web_mydomain.comhdr(host) -i web.mydomain.com
use_backend web_nodes if ACL_web_mydomain.com
backend api_nodes
mode tcp
balance roundrobin
option tcp-check
server web01 192.0.0.68:5002/healthcheck check
backend web_nodes
mode tcp
balance roundrobin
option tcp-check
server web01 192.0.0.68:5001 check
我正在使用 HAProxy 1.5.x 版本。