设为首页 收藏本站
查看: 1063|回复: 0

[经验分享] 负载均衡集群HAProxy讲解篇

[复制链接]

尚未签到

发表于 2019-1-2 07:22:35 | 显示全部楼层 |阅读模式
负载均衡集群HAProxy讲解篇
一、HAProxy组成部分
Haproxy配置中分成五部分内容,当然这些组件不是必选的,可以根据需要选择作为配置。
1.global:参数是进程级的,通常和操作系统(OS)相关。这些参数一般只设置一次,如果配置无误,就不需要再次配置进行修改;
2.default:配置默认参数的,这些参数可以被利用配置到frontendbackendlisten组件;
3.frontend:接收请求的前端虚拟节点,Frontend可以根据规则直接指定具体使用后端的backend(可动态选择)
4.backend:后端服务集群的配置,是真实的服务器,一个Backend对应一个或者多个实体服务器;
5.listenFrontendBackend的组合体。
二、Global部分讲解
1log 127.0.0.1 local0 info#log表示日志配置,local0表示日志设备,info表示日志级别。
2maxconn 4096#haproxy进程可接受的最大并发连接说,等同于ulimit n
3uid 99#HAProxy运行的用户uid
4gid 99#HAProxy运行的组uid
5daemon#后台形式运行haproxy
6nbproc 1 #开启的进程数
7pidfile /usr/local/haproxy/haproxy.pid#指定haproxy进程文件。
三、defaults部分讲解
           1log global #应用全局的日志配置。
           2mode http#所处理的类别,默认采用http模式,可配置成tcp4层消息转发。
           3option httplog#日志类别。
           4retries 3#连接后端服务器失败重试次数,连接失败3次,认为后端服务器不可用。
           5option redispatch#当后端对应的服务器挂掉后,强制定向到其他健康的服务器。
           6option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
           7option dontlognull #保证HAProxy不记录上级负载均衡发送过来的用于检测状态没有数据的心跳包。
           8maxconn 2000#默认的最大连接数。
           9timeout connect 5000 #连接超时,根据情况设定,时间太短,可能会有408错误。
           10timeout client 50000#客户端连接超时。
11timeout server 50000#服务器回应超时。
12timeout check 30s #心跳检测超时。
13timeout http-keep-alive10s #存活请求时间为超时时间。
14timeout http-request 30s #请求超时时间。
15timeout queue 1m #队列超时间。
16contimeout 5000 # 设置成功连接到一台服务器的最长等待时间,默认单位是毫秒,新版本的haproxy使用timeout connect替代,该参数向后兼容。
17clitimeout 50000 #设置连接客户端发送数据时的成功连接最长等待时间,默认单位是毫秒,新版本haproxy使用timeout client替代。该参数向后兼容。
18 srvtimeout 50000 #设置服务器端回应客户度数据发送的最长等待时间,默认单位是毫秒,新版本haproxy使用timeout server替代。该参数向后兼容。
四、frontend部分讲解
           1bind *:8080 #监听端口。
           2mode http #http7层模式。
           3option httplog #启用http日志格式。
           4option http-server-close #对于某些server端不支持http长连接的情况,利用这个参数可以使用客户端到haproxy是长连接,而haproxyserver端是短连接。
           5option forwardfor except 127.0.0.0/24 header X-Forwarded-For #后端服务器需要获得客户端的真实IP,将从Http Header中获得客户端IP.
           6option dontlognull #来防止记录 Alteo(4层负载均衡)发出的健康检测,如果一个 session 交互没有数据,这个 session就不会被记录。
           7option httpclose #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只能模拟这种模式的实现。
           8default_backend htmpool #后端服务器池,真实服务器必须在backend中去定义。
五、backend部分讲解
           1mode http#所处理的类别,默认采用http模式,可配置成tcp4层消息转发。
           2option redispatch#当后端对应的服务器挂掉后,强制定向到其他健康的服务器。
           3option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
           4balance leastconn#负载均衡算法。
           5cookie SERVERID#允许向cookie插入serverid,每台服务器的serverid可在下面server关键字中使用cookie
           6option httpchk HEAD /index.htm HTTP/1.0 #健康检查。
           7server#定义多个后端真实服务器。
                     例如:server web1 192.168.100.50:8085 cookie 1 weight 5 check inter 2000 rise 2 fall 3
                     7.1web1为后端真实服务器内部名称,随便定义。
                     7.2192.168.100.50为后端真实服务器ip地址。
                     7.38085为后端真实服务器连接的端口。
                     7.4cookie为后端服务器设定cookie值,实现持久性连接功能。cookie 1表示serverid1
                     7.5weight为服务器的权重。
                     7.6check为健康状态检查
                     7.7inter 2000为健康检查时间间隔。
                     7.8ruse 2为故障转换正常成功检查次数。
                     7.9fall 3为正常状态转换为故障需要检查的次数。
六、listen部分讲解
           1listen admi_statsd定义一个haproxy监控页面。
           2bind *:9188 #监听端口。
           3stats refresh 10s #统计页面自动刷新时间。
           4stats uri /haproxy-stats #统计页面url
           5stats realm Statistics\ Report #统计页面密码框上提示文本。
           6stats auth admin:123456 #统计页面用户名和密码设置。
           7stats hide-version #隐藏统计页面上HAProxy的版本信息。
           8stats admin if TRUE #手工启用/禁用,后端服务器(haproxy-1.4.9以后版本)
七、haproxy相关命令参数介绍
           haproxy  -f    [-n 最大并发连接总数] [-N 每个侦听的最大并发数] [-d] [-D] [-q] [-V] [-c] [-p] [-s] [-l] [-dk] [-ds] [-de] [-dp] [-db] [-m ] [{-sf|-st} pidlist...]
          -d     前台,debug模式
          -D     daemon模式启动
          -q     安静模式,不输出信息
          -V     详细模式
          -c     对配置文件进行语法检查
          -s     显示统计数据
          -l     显示详细统计数据
          -dk    不使用kqueue
          -ds    不使用speculative epoll
          -de    不使用epoll
          -dp    不使用poll
          -db    禁用后台模式,程序跑在前台
          -sf    程序启动后向pidlist里的进程发送FINISH信号,这个参数放在命令行的最后
          -st    程序启动后向pidlist里的进程发送TERMINATE信号,这个参数放在命令行的最后
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658436-1-1.html 上篇帖子: haproxy初步安装配置详解 下篇帖子: haproxy(简称HA,web负载均衡)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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