Aye*_*let 5 ssl haproxy sticky-sessions round-robin
我们正在尝试设置 HAProxy (v1.5.1) 以使用 SSL。
虽然我们设法做到了这一点,但我们在循环设置方面遇到了一些问题:
我们确实想要棒会话,但是 haproxy 似乎将所有会话(来自不同浏览器)发送到同一个节点 ( my.vm.2),即使另一个节点 ( my.vm.1) 也可用。所以看起来循环设置不能正常工作。
这是我们当前的配置,我们将不胜感激一些帮助/想法。:):
global
debug
stats socket /etc/haproxy/haproxysock level admin
tune.ssl.default-dh-param 2048
defaults
mode http
balance roundrobin
timeout connect 5s
timeout queue 300s
timeout client 300s
timeout server 300s
frontend https_frontend
bind *:8443
mode tcp
reqadd X-Forwarded-Proto:\ https
default_backend my_backend
backend my_backend
mode tcp
stick-table type ip size 200k expire 30m
stick on src
default-server inter 1s
server my.vm.1 my.vm.1:8443 check id 1 maxconn 500
server my.vm.2 my.vm.2:8443 check id 2 maxconn 500
option httpclose
option redispatch
retries 15
listen admin
bind *:8081
stats enable
stats refresh 1s
Run Code Online (Sandbox Code Playgroud)
我建议在 HAProxy 中进行所有 SSL 处理并使用代理协议(send-proxy和accept-sslproxy),以便客户端信息从 ssl 处理器传递到前端+后端。这看起来像:
listen ssl-proxy
bind 1.2.3.4:443 ssl crt /etc/ssl/mycert.pem npn http/1.1
mode tcp
bind-process 2 3 4
server http 127.0.0.1:80 send-proxy
frontend dev
#Do whatever you want here since it is http
mode http
bind 1.2.3.4:80 name dev
bind 127.0.0.1:80 accept-proxy name accept-sslproxy
bind-process 1
acl is_ssl dst_port 443
reqadd X-Forwarded-Proto:\ https if is_ssl
default_backend my_backend
backend my_backend
mode http
#Do whatever you want here since it is http
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28499 次 |
| 最近记录: |