我想配置 haproxy 以在两个后端服务器之间进行平衡。我有简单的配置
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
option httplog
option dontlognull
mode http
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
frontend my_frontend
bind *:8000
default_backend my_backend
http-request capture req.hdr(user_id) len 64
backend my_backend
#simple proxy servers (squid)
server serv1 1.2.3.4:8001
server serv2 5.6.7.8:8001
stick-table type string size 20m expire 1m
stick on hdr(user_id)
balance hdr(user_id)
然后我向 haproxy 请求curl
curl --proxy my_haproxy_public_ip:8000 --header "user_id:test42" https://api.ipify.org?format=json
此配置在 http 连接中工作正常(我可以在日志中看到捕获的标头),但在 https 连接中标头不可见,这就是无法进行平衡的原因。我是连接和协议方面的新手,可能遗漏了一些东西。是否有一种方法可以从 https 请求中获取任何标头以启用平衡hdr(my_header)
?