树莓派论坛

 找回密码
 立即注册

树莓派安装Haproxy实现shadowsocks负载均衡

drice 发表于 2016-5-13 23:23:40 | 显示全部楼层 |阅读模式
本帖最后由 drice 于 2016-5-14 15:55 编辑

平时工作离不开谷歌,搜索英文文献比百度强多了。为了科学上网,买了个shadowsocks帐号,有好几个节点,每个节点都不错,很快。但是人心都是贪婪的,稳稳一个节点用几天总想换一个节点再感受感受,感觉这么多个节点没有都给用用好像浪费了。。。其实就是折腾。好在,遇到了Haproxy。

Haproxy是什么?虽然不喜欢百度,但还是引用百度百科吧,维基百科这个词条没中文的。

“HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。”

如果专门用一台电脑来做shadowsocks负载均衡的话,就太浪费了,刚好手上有个闲置的树莓派,以它的性能,应付个Haproxy绰绰有余了,关键还低功耗,可以24小时开机。
这次,我们就将它用来作为shadowsocks的负载均衡。把我们科学上网的需求分配到各个Shadowsocks节点上,以满足自己不浪费任何一个节点的强迫症想法。OK,Let's go.

1)作为Haproxy专用树莓,我选择用RASPBIAN JESSIE LITE系统,作为服务器专用,没必要有图形界面。
官方链接:https://www.raspberrypi.org/downloads/raspbian/

2)烧录安装略过不表。。。

3)基础设置及更换软件源。
sudo rasps-config

我偏爱mstc.edu.cn的源。
sudo nano /etc/apt/sources.list
将其他行用#注释掉,
加入:
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free rpi
然后按Ctrl+X 退出保存。

4)更新源
sudo apt-get update

5)安装Haproxy
sudo apt-get install haproxy

6) 设置Haproxy
Haproxy的配置文件在/etc/haproxy/haproxy.cfg.
先备份一下:
sudo cp haproxy.cfg haproxy.cfg.default

编辑haproxy.cfg
sudo nano haproxy.cfg

将defaults下的
mode http 改为 mode tcp
有几行errorfile开头的是跟http相关的,对于我们用于shadowsocks负载均衡没有用,删除,或者注释掉吧。

加入:
fronted shadowsocks-in
        bind *:9001(这是你树莓派要开放给其他设备访问的shadowsocks服务的端口号)
        default_backend shadowsocks-out

backend shadowsocks-out
        server server1 ss1.acrossgw.com:9001 maxconn 20480
        server server2 ss2.acrossgw.com:9001 maxconn 20480
        server server3 ss3.acrossgw.com:9001 maxconn 20480
        server server4 ss4.acrossgw.com:9001 maxconn 20480

以上的地址是我从www.acrossgw.com购买的shadowsocks服务的节点地址和端口,换成你自己的节点地址和端口。
OK,ctrl+x 保存退出。

7)重启服务:
sudo service haproxy restart
把原来直接连接到shadowsocks的地址,改为树莓派的地址,开始享受Haproxy带来的负载均衡吧。怎么验证是否成功?两个标志:第一,能上谷歌,说明shadowsocks生效了;第二,全局代理的情况下多访问几次能显示ip的网站,比如www.ip138.com,可以看到你的访问ip不只是一个,说明负载均衡生效了。


8)几点说明:
8-1)我没有安装防火墙,所以,就不需要配置,如果你安装了防火墙,记得将相应的节点打开。
8-2)个人以为,用于负载均衡的shadowsocks节点最好是在相近区域的服务器,比如都是日本节点。因为考虑到,负载均衡后,如果这次的请求是日本youtube,而下次请求因为负载均衡,变成用美国节点来访问日本youtube,可能会导致速度变慢。个人想法,不一定正确。
8-3)作为负载均衡的几个服务器,必须加密方式和密码是一样的,但是通常购买的shadowsocks服务,同一账号的加密方式和密码都相同,所以,问题不大。但是如果你的shadowsocks是东拼西凑找来的,就不行了。


56143575 发表于 2018-5-6 23:50:11 | 显示全部楼层
安装Haproxy实现负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )