服务商会有好几条线路提供,有时候某条线路会不稳定,需要手动切换线路。利用 HAProxy 可实现主备线路切换,并且可设置均衡负载让速度爆炸(需要服务商支持同时登陆)
准备工作
- 树莓派或香橙派类开发板
- 服务商线路若干条
- 需要一定的linux基础
安装 HAProxy
sudo sudo apt-get update 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
## 程序参数 global pidfile /var/run/haproxy.pid #PID文件,做进程守护使用 user root #运行程序的用户 group root #运行程序的用户组 daemon #后台运行 ## 服务器默认参数 defaults mode tcp #默认的模式mode { tcp|http|health },tcp是4层,http是7层 balance roundrobin #服务器均衡模式 retries 2 #两次连接失败就认为是服务器不可用 option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器 option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接 #option dontlognull #不记录健康检查日志信息 maxconn 3200 #最大连接数 timeout connect 500ms #连接超时 timeout client 3000ms #客户端超时 timeout server 3000ms #服务器超时 ## FREE_日本服务器_三线不计量均衡线路双线计量备用线路 # inter 1000 = 隔1000毫秒检测一次服务器是否正常 listen FREE_SS_Japan bind 0.0.0.0:8001 # 服务端口 server fss-jp1 hscbook.com:18750 check inter 1000 rise 2 fall 3 #服务器地址与端口 server fss-jp2 hscbook.com:18750 check inter 1000 rise 2 fall 3 #服务器地址与端口 server fss-jp3 hscbook.com:18750 check inter 1000 rise 2 fall 3 #服务器地址与端口 server fjp-bck hscbook.com:18750 check backup inter 5000 rise 2 fall 3 #备用线路 server fjp-bck hscbook.com:18750 check backup inter 5000 rise 2 fall 3 #备用线路 ## FREE_美国服务器_四线不计量均衡线路双线计量备用线路 listen FREE_SS_U.S.A bind 0.0.0.0:8002 server fss-usa hscbook.com:18750 check inter 1000 rise 2 fall 3 server fss-us-dls hscbook.com.shidd.net:18750 check inter 1000 rise 2 fall 3 server fss-us-atl hscbook.com.shidd.net:18750 check inter 1000 rise 2 fall 3 server fss-us-nwk hscbook.com:18750 check inter 1000 rise 2 fall 3 server fus-bck hscbook.com:18750 check backup inter 5000 rise 2 fall 3 #备用线路 server fus-bck hscbook.com:18750 check backup inter 5000 rise 2 fall 3 #备用线路 ## Metering_视频服务器_单线线不计量线路单线计量备用线路 listen Metering_SS_Video bind 0.0.0.0:8003 server mss-video hscbook.com:18750 check inter 1000 rise 2 fall 3 server mmv-bck hscbook.com:18750 check backup inter 5000 rise 2 fall 3 #备用线路 ## Latency_低延迟服务器_单线线不计量线路双线不计量备用线路 listen Low_latency bind 0.0.0.0:8004 server hk-http hscbook.com:25479 check inter 1000 rise 2 fall 3 server jp-bck hscbook.com:25479 check backup inter 5000 rise 2 fall 3 #备用线路 server jp-bck hscbook.com:25479 check backup inter 5000 rise 2 fall 3 #备用线路 ## 网页服务端 listen Web_Service bind 0.0.0.0:82 #网页服务端口 mode http #接口协议 stats refresh 5s #自动刷新时间 stats uri / #管理地址 stats auth hscbook:hscpro #账号密码 stats hide-version #隐藏版本 stats admin if TRUE #验证通过则赋予管理权
先备份配置并写入
sudo mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak sudo nano /etc/haproxy/haproxy.cfg
重启 HAProxy
sudo service haproxy stop sudo service haproxy start
使用问题与技巧
- 账号密码和加密方式? 在客户端处填就可以了,就是把原来的地址和端口换成 bind 处的地址端口。
- 启动 HAPproxy 报错? 多启动几次试试看,不行就请检查配置文件