Haproxy负载多个落地节点
通过haproxy负载多个落地节点,可实现单个节点宕机后,由另外一个落地节点接替流量
一、落地节点vless + reality
(自备,所有节点使用同样的UUID,公钥私钥, SNI,shortID,基本做到一致即可)
二、入口节点(部署Haproxy进行负载)
1、haproxy.cfg配置文件
defaults
mode tcp #设置HAProxy默认的工作模式,有tcp,http,health三种
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 hk-out
bind 0.0.0.0:13307
mode tcp
log global
default_backend vless-hk
backend vless-hk
balance roundrobin
server hk-vps1 46.xxx.xxx.xx:22990 check inter 5s rise 2 fall 3 weight 2
server hk-vps2 45.xxx.xxx.xx:44984 backup check inter 5s rise 2 fall 3 weight 1
server hk-vps3 46.xxx.xxx.xx:19389 check inter 5s rise 2 fall 3 weight 2
listen stats
mode http
bind 0.0.0.0:1080
stats enable
stats hide-version
stats uri /stats
stats realm Haproxy\ Statistics
stats auth admin:adminkfc123.
stats admin if TRUE
2、docker部署haproxy
# 此处映射端口与配置文件保持一致
mkdir -p /opt/haproxy
docker run -d -p 1080:1080 -p 13307:13307 -d --name haproxy-master -v /opt/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg --privileged=true haproxy:lts-bookworm
3、haproxy stats

三、clash配置
- {name: 🇭🇰 HK-XX, server: 入口IP, port: Haproxy负载端口, reality-opts: {public-key: Fca3v8KL3IXWhoQSXXXXXXXXXXXXXXX, short-id: 2a142312312}, client-fingerprint: chrome, type: vless, uuid: dc51593c-8c51-232b-1232-2c91824fabd7, tls: true, tfo: false, servername: itunes.com, flow: xtls-rprx-vision, skip-cert-verify: true, udp: true}