多Shadowsocks服务器负载均衡

by Kevin chen, at 05 May 2020, tags : 配置 点击纠错 点击删除
使用CN2/CN2GIA顶级线路,支持Shadowsocks/V2ray科学上网,支持支付宝付款,每月仅需 5 美元
## 加入品葱精选 Telegram Channel ##

玩翻墙主机的人哪个没有好几个小鸡,所以多主机负载均衡访问这个需求应运而生,开源软件界当然已经有可以解决这个问题的软件——Haproxy

HAProxy是一个使用C语言编写的基于TCP和HTTP的应用程序代理,其提供高可用性、负载均衡。

整套系统的流程如图

流程图

Haproxy

安装就不必多讲了,直接看看配置文件,默认在/etc/haproxy/haproxy.cfg

global log /dev/log local0 log /dev/log local1 notice user root group root daemon defaults log global mode tcp timeout connect 5s timeout client 5s timeout server 5s option dontlognull option redispatch retries 3 listen status bind *:1111 mode http stats refresh 30s stats uri /status stats realm Haproxy stats auth admin:admin frontend shadowsocks-in mode tcp bind *:8388 default_backend shadowsocks-out backend shadowsocks-out mode tcp option tcp-check balance roundrobin server servername1 xxxxx1.com:8088 check server servername2 xxxxx2.net:8080 check server servername3 12.34.56.78:9999 check server servername4 123.234.234.123:443 check

配置分为五大部分:

global:全局配置,我这里主要是配置了日志

defaults:默认配置,也是一些全局配置,没什么好说的

listen:监听配置,我在本机1111端口配置了http监控页面

frontend:前端配置,Shadowsocks数据流从这里进入,流向指定后端

backend:后端配置,balance指定负载平衡方式,每个服务器写为一个server行,server支持域名或IP,如果你想使用域名,那么必须要看看我之前写的解决 Haproxy 用 Systemd 启动失败的问题,不然肯定会出问题。

我能用到就负载平衡方式只有简单的几种,复杂的需要查文档

roundrobin:简单轮询

static-rr:根据权重分配,权重在后端server中设置

leastconn:根据服务器最少连接分配,这个模式适合长连接应用

Shadowsocks

新建一个配置文件/etc/shadowsocks/Shadowsocks-haproxy.json,内容如下:

{ "server": "127.0.0.1", "server_port": 8388, "local_address": "127.0.0.1", "local_port": 65509, "password": "password", "timeout": 30, "method": "chacha20-ietf-poly1305", "fast_open": true, "workers": 2 }

启动

首先要启动haproxy服务

systemctl enable haproxy.service systemctl start haproxy.service

只需要启动一个Shadowsocks服务就可以实现多服务器负载均衡了

systemctl enable shadowsocks-libev@Shadowsocks-haproxy.service systemctl start shadowsocks-libev@Shadowsocks-haproxy.service

监控图形界面

监控

最简单好用的 VPS,没有之一,注册立得 100 美金
comments powered by Disqus

See Also

用 Haproxy 实现多 VPS 线路负载均衡 - Tian Wenshan | Wenshan’s Blog

使用机场或者有多个小鸡的人,某个线路故障了,就得手动切换 ss 线路,实在太麻烦了,能不能自动负载均衡,使用可用的 VPS 呢? 答案是肯定的,这就是今天的主角—— Haproxy。 但是这个方案有个前提,那就是每个 ss 的密码和加密方式 …