HAProxy:如何读取 https 连接中的标头?

HAProxy:如何读取 https 连接中的标头?

我想配置 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)

相关内容