找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 14667|回复: 84

【教程】利用haproxy做乳酸菌饮料的负载均衡

  [复制链接]
发表于 2019-12-5 15:27 | 显示全部楼层 |阅读模式
本帖最后由 tstar 于 2019-12-16 01:41 编辑

一直使用koolshare的lede固件,主要原因是lede的相关插件可以使用haproxy来支持乳酸菌饮料负载均衡。

经过研究发现,lean大神的固件同样可以利用haproxy来做乳酸菌饮料的负载均衡。

先给一张图:



如图所示 最流行的两种模式都是支持的。

教程如下

过审继续:
前提:多个vps要确保乳酸菌饮料的密码和加密方式保持一致,v2要保证id和alerid保证一致。(基本上非自建服务器的可以不用往下看了)

第一步:在系统-软件包中安装haproxy

安装好后修改haproxy的配置文件haproxy.cfg 以下为参考

  1. global
  2.      log         127.0.0.1 local2
  3.      chroot      /root
  4.      pidfile     /tmp/haproxy.pid
  5.      maxconn     4096
  6.      user        root
  7.      daemon

  8. defaults
  9.      mode                    tcp   
  10.      log                     global
  11.      option                  httplog
  12.      option                  dontlognull
  13.      option  http-server-close
  14.      option  forwardfor      except 127.0.0.0/8
  15.      option                  redispatch
  16.      retries                 2
  17.      timeout http-request    10s
  18.      timeout queue           1m
  19.      timeout connect         2s     
  20.      timeout client          1m
  21.      timeout server          1m
  22.      timeout http-keep-alive 10s
  23.      timeout check           10s
  24.      maxconn                 3000
  25.      balance roundrobin

  26. listen status
  27.     bind  0.0.0.0:1111
  28.     mode  http
  29.     stats refresh 30s
  30.     stats uri /   
  31.     stats auth admin:admin

  32. listen s-s
  33.      bind 0.0.0.0:5088                 
  34.      mode tcp
  35.      server s1 服务器ip:端口 check
  36.      server s2 服务器ip:端口 check
  37.      server s3 服务器ip:端口 check

  38. listen v2
  39.      bind 0.0.0.0:6088
  40.      mode tcp
  41.      server s1 服务器ip:端口 check
  42.      server s2 服务器ip:端口 check
  43.      server s3 服务器ip:端口 check


复制代码
修改完后重启haproxy

第二步:添加乳酸菌饮料的服务器节点

如上 我们把乳酸菌饮料的节点ip设为127.0.0.1 端口设为5088 密码和加密方式所有服务器是一致的 填上即可
        v2同理

最关键的一步:

关于代理端口, 我们要选择常用端口,也就是非bt端口,这样来保证不包含5088 和 6088 ,否则会让数据陷入死循环。导致路由cpu急升,崩溃。

最后:我们可以通过 路由ip:1111来查看负载分流的具体情况 也就是最上面的那张图。

进阶配置:balance roundrobin 这个配置是指负载均衡的算法,roundrobin是基于权重的。默认权重为1。我们可以为多个服务器设置权重,这样我们可以确保不断线的同时,确保流量优先走我们选择的线路。

  1. listen s-s
  2.      bind 0.0.0.0:5088                 
  3.      mode tcp
  4.      server s1 服务器ip:端口 check  weight  10
  5.      server s2 服务器ip:端口 check  weight  60
  6.      server s3 服务器ip:端口 check  weight  30
复制代码
上面举例 weight是权重 三个服务器一共是100 权重越高被轮叫的几率越高,虽不是简单的流量比例,但是基本上我们可以确保高权重占用较高的流量。

而低权重的服务器,我们可以设置那些备用服务器,例如有严格流量限制的vps。

下面列出haproxy的所有负载均衡算法:

1.roundrobin:基于权重进行的轮叫算法,在服务器的性能分布经较均匀时这是一种最公平的,最合量的算法。
2.static-rr:也是基于权重时行轮叫的算法,不过此算法为静态方法,在运行时调整其服务权重不会生效。
3.source:是基于请求源IP的算法,此算法对请求的源IP时行hash运算,然后将结果与后端服务器的权理总数相除后转发至某台匹配的后端服务器,这种方法可以使用一个客户端IP的请求始终转发到特定的后端服务器。
4.leastconn:此算法会将新的连接请求转发到具有最少连接数目的后端服务器。在会话时间较长的场景中推荐使用此算法。例如数据库负载均衡等。此算法不适合会话较短的环境,如基于http的应用。
5.uri:此算法会对部分或整个URI进行hash运算,再经过与服务器的总权重要除,最后转发到某台匹配的后端服务器上。
6.uri_param:此算法会椐据URL路径中的参数时行转发,这样可以保证在后端真实服务器数量不变时,同一个用户的请求始终分发到同一台机器上。
7.hdr:此算法根据httpd头时行转发,如果指定的httpd头名称不存在,则使用roundrobin算法进行策略转发。
8.rdp-cookie(name):是根据据cookie(name)来锁定并哈希每一次TCP请求。

有任何问题,请提出,一起探讨。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

点评

v贰瑞 ws+tls 似乎不行。  发表于 2020-3-10 11:37
用ps看,有2个haproxy的进程,是bug吗? 你有几个进程? 见 https://www.right.com.cn/forum/thread-2904773-1-1.html  发表于 2020-2-23 00:06
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-12-6 13:52 | 显示全部楼层
看看看看看看
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-6 14:19 | 显示全部楼层
完后重启haproxy
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-8 16:03 | 显示全部楼层
学学习习,一直搞不明白这个怎么用
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-12 14:45 | 显示全部楼层
标记一下,先看看好不好,谢谢楼主咯!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-12 22:43 来自手机 | 显示全部楼层
pkg install wget openssl-tool proot tar -y && hash -r && wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/CentOS/centos.sh && bash centos.sh
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-13 09:30 | 显示全部楼层
查看负载分流
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-13 16:45 | 显示全部楼层
感谢分享!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-15 08:19 | 显示全部楼层
一直没搞清楚如何负载均衡
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-15 09:28 | 显示全部楼层
没玩过haproxy,进来看看
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-15 11:46 | 显示全部楼层
这个有意思了  好玩
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-15 14:19 | 显示全部楼层
感谢分享。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-15 20:23 | 显示全部楼层
基本上非自建服务器的可以不用往下看了
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-15 22:51 | 显示全部楼层
好深奥,真羡慕你们这些大佬,看看能不能学会,谢谢分享
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-12-15 23:06 来自手机 | 显示全部楼层
学一学,看看怎么玩
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-25 19:00

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表