服务商会有好几条线路提供,有时候某条线路会不稳定,需要手动切换线路。利用 HAProxy 可实现主备线路切换,并且可设置均衡负载让速度爆炸(需要服务商支持同时登陆)

准备工作

  1. 树莓派或香橙派类开发板
  2. 服务商线路若干条
  3. 需要一定的linux基础

安装 HAProxy

1
sudo sudo apt-get update
2
sudo apt-get install -y haproxy

配置 HAProxy

详细配置说明可参考网络文章
HAProxy 用法详解 http://www.ttlsa.com/linux/haproxy-study-tutorial/
HAProxy 配置示例 http://xstarcd.github.io/wiki/sysadmin/haproxy_confs.html
这里贴出我的配置文件,自行修改后写入 haproxy.cfg

1
## 程序参数
2
global
3
	pidfile /var/run/haproxy.pid	#PID文件,做进程守护使用
4
	user root			#运行程序的用户
5
	group root			#运行程序的用户组
6
	daemon				#后台运行
7
8
## 服务器默认参数
9
defaults
10
	mode tcp			#默认的模式mode { tcp|http|health },tcp是4层,http是7层 
11
	balance roundrobin		#服务器均衡模式
12
	retries 2			#两次连接失败就认为是服务器不可用 
13
	option redispatch		#当serverId对应的服务器挂掉后,强制定向到其他健康的服务器 
14
	option abortonclose		#当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接 
15
	#option dontlognull		#不记录健康检查日志信息
16
	maxconn 3200			#最大连接数
17
	timeout connect 500ms		#连接超时
18
	timeout client 3000ms		#客户端超时
19
	timeout server 3000ms		#服务器超时
20
21
## FREE_日本服务器_三线不计量均衡线路双线计量备用线路
22
# inter 1000 = 隔1000毫秒检测一次服务器是否正常
23
listen FREE_SS_Japan
24
        bind 0.0.0.0:8001       # 服务端口
25
        server fss-jp1 hscbook.com:18750 check inter 1000 rise 2 fall 3		#服务器地址与端口
26
        server fss-jp2 hscbook.com:18750 check inter 1000 rise 2 fall 3		#服务器地址与端口
27
        server fss-jp3 hscbook.com:18750 check inter 1000 rise 2 fall 3		#服务器地址与端口
28
	server fjp-bck hscbook.com:18750 check backup inter 5000 rise 2 fall 3	#备用线路
29
	server fjp-bck hscbook.com:18750 check backup inter 5000 rise 2 fall 3	#备用线路
30
31
## FREE_美国服务器_四线不计量均衡线路双线计量备用线路
32
listen FREE_SS_U.S.A
33
        bind 0.0.0.0:8002
34
        server fss-usa hscbook.com:18750 check inter 1000 rise 2 fall 3
35
        server fss-us-dls hscbook.com.shidd.net:18750 check inter 1000 rise 2 fall 3
36
        server fss-us-atl hscbook.com.shidd.net:18750 check inter 1000 rise 2 fall 3
37
        server fss-us-nwk hscbook.com:18750 check inter 1000 rise 2 fall 3
38
	server fus-bck hscbook.com:18750 check backup inter 5000 rise 2 fall 3	#备用线路
39
	server fus-bck hscbook.com:18750 check backup inter 5000 rise 2 fall 3	#备用线路
40
41
## Metering_视频服务器_单线线不计量线路单线计量备用线路
42
listen Metering_SS_Video
43
        bind 0.0.0.0:8003
44
        server mss-video hscbook.com:18750 check inter 1000 rise 2 fall 3
45
        server mmv-bck hscbook.com:18750 check backup inter 5000 rise 2 fall 3	#备用线路
46
47
## Latency_低延迟服务器_单线线不计量线路双线不计量备用线路
48
listen Low_latency
49
        bind 0.0.0.0:8004
50
        server hk-http hscbook.com:25479 check inter 1000 rise 2 fall 3
51
        server jp-bck hscbook.com:25479 check backup inter 5000 rise 2 fall 3	#备用线路
52
	server jp-bck hscbook.com:25479 check backup inter 5000 rise 2 fall 3	#备用线路
53
54
## 网页服务端
55
listen Web_Service
56
        bind 0.0.0.0:82			#网页服务端口
57
        mode http			#接口协议
58
        stats refresh 5s		#自动刷新时间
59
        stats uri  /			#管理地址
60
        stats auth hscbook:hscpro	#账号密码
61
        stats hide-version		#隐藏版本
62
        stats  admin if TRUE		#验证通过则赋予管理权

先备份配置并写入

1
sudo mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
2
sudo nano /etc/haproxy/haproxy.cfg

重启 HAProxy

1
sudo service haproxy stop
2
sudo service haproxy start

使用问题与技巧

  1. 账号密码和加密方式?
    在客户端处填就可以了,就是把原来的地址和端口换成 bind 处的地址端口。
  2. 启动 HAPproxy 报错?
    多启动几次试试看,不行就请检查配置文件