之前的文章里写过HaProxy可以做高性能负载平衡服务器,可以很有效的在多台HTTP服务器之间实现实现负载平衡,而且HaProxy还支持TCP(四层)负载平衡,这就意味着我们可以利用HaProxy给已经被墙的某些服务搭个跳板,或者利用这个做前端加速SS的访问速度。
今天我将利用HaProxy在国内的BGP机房作为跳板,为我法国的一个SS服务器进行加速。HaProxy可以部署在任何VPS或者容器服务上。这里使用的是Ubuntu操作系统,同时CentOS也可以用相同的方法安装。
执行安装:
apt-get install haproxy
yum install haproxy
修改配置文件(使用yum/apt-get安装的配置文件在/etc/haproxy/目录下)
vim /etc/haproxy/haproxy.cfg
我在这里贴一个配置范例,你可以根据你的需要修改.
#Global部分可以直接使用默认配置 global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon #Default部分除了mode可以保留http以外其他有http的项目都需要注释掉比方说httplog和httpclose defaults mode http log global option dontlognull option httpclose #option httplog option tcplog #option forwardfor option redispatch timeout connect 10000 # default 10 second time out if a backend is not found timeout client 300000 timeout server 300000 maxconn 60000 retries 3 #设置前端(Haproxy监听端口) frontend tcp-proxy-front bind *:8088 mode tcp default_backend tcp-proxy-back #设置后端(SS服务器端口) backend tcp-proxy-back mode tcp balance leastconn #HaProxy有多种负载平衡算法,当前是使用连接数最少的服务器,可以切换为"roundrobin(轮询)""static-rr(权重)"更多方式可以参考官方文档 server tcp-proxy 10.1.27.20:10021 #假定为该IP,可以不在同一局域网内 #server tcp-proxy-2 10.1.27.21:10021 #设定负载平衡
启动HaProxy
service haproxy start
简单设置后HaProxy就处于工作状态了,如果你有硬件防火墙,不要忘记开放端口.
直接看SS客户端似乎看不出什么变化,这里测速试试.
上图是通过HaProxy前端的测速结果
下图是没有前端直接连接的测速结果
由于我目前的宽带是长城宽带,所以结果可能略为奇怪,如果是电信联通的话效果可能会更好,该方法也可以为已经被墙的SSH或SS做跳板,使用一台国外的可以正常连接的服务器安装HaProxy然后代理无法连接的服务器即可.
头图版权:櫻@幻像黒兎 | PID=55242277