前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Linux】haproxy快速搭建简单负载均衡

【Linux】haproxy快速搭建简单负载均衡

作者头像
MaybeHC
发布2024-04-23 19:36:28
920
发布2024-04-23 19:36:28
举报
文章被收录于专栏:技术之路技术之路

安装haproxy

代码语言:javascript
复制
yum install haproxy

haproxy配置文件配置

在这里我附上一个写好的配置文件,我会说明下需要改动的点

代码语言:javascript
复制
global
       # log 127.0.0.1 local0 info #[err warning info debug] //日志位置  
        log 127.0.0.1   local3
        maxconn 65535 #并发最大连接数
        daemon #设置成后台运行  
        nbproc 1 #进程数量  
        #pidfile /home/admin/haproxy/logs/haproxy.pid  
	#pidfile /usr/local/haproxy/haproxy.pid


defaults
        log     global
        mode    http #默认模式  
        option  httplog #http日志格式  
        option  dontlognull
	option forwardfor
	option httpclose
        retries 2  #三次失败后认为服务器不可用  
       # option  redispatch  #如果cookie写入了serverId而客户端不会刷新cookie,当serverId对应的服务器挂掉后,强制定向到其他健康的服务器  
        maxconn 65535 #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接默认的最大连接数  
        contimeout 5000 #连接超时  
        clitimeout 30000 #客户端超时  
        srvtimeout 30000 #服务器超时  

frontend web_in
        mode http
        maxconn 65535
        bind :80
        acl is_a hdr_beg(host) -i a.example.com
        acl is_b hdr_beg(host) -i 2linux.com    
	use_backend a_server if is_a
        use_backend b_server if is_b
backend a_server
        mode http #http 模式  
        #balance source
       	stats   uri  /haproxy
        balance leastconn
        cookie  JSESSIONID prefix  
        stats   hide-version  
        option  httpclose  
	server hellen_3   192.168.56.119:80 weight 5  check inter 2000 rise 2 fall 3 

backend b_server  
        mode http #http 模式  
        stats   uri  /haproxy
        balance  leastconn 
	#balance roundrobin  
        cookie  JSESSIONID prefix   
    
        stats   hide-version  
        option  httpclose
        server test_2   192.168.61.129:80 check  weight 5  check inter 2000 rise 2 fall 3 
        server test_3    192.168.61.132:80 check  weight 5  check inter 2000 rise 2 fall 3 

listen stats_auth 
	bind 192.168.31.81:8080 #集群管理界面访问ip
	stats refresh 20s
        stats enable
        stats uri  /admin-status   #集群管理界面访问地址
        stats auth  admin:linux123  #登录用户名
        stats admin if TRUE

设置域名对应的组

我们来看frontend web_in这部分

代码语言:javascript
复制
frontend web_in
        mode http
        maxconn 65535
        bind :80
        acl is_a hdr_beg(host) -i a.example.com
        acl is_b hdr_beg(host) -i 2linux.com    
	use_backend a_server if is_a
        use_backend b_server if is_b
        
        
backend b_server  
        mode http #http 模式  
        stats   uri  /haproxy
        balance  leastconn #使用的分配算法
        cookie  JSESSIONID prefix  
        stats   hide-version  
        option  httpclose
        server test_2   192.168.61.129:80 check  weight 5  check inter 2000 rise 2 fall 3 
        server test_3    192.168.61.132:80 check  weight 5  check inter 2000 rise 2 fall 3 

这里acl is_b hdr_beg(host) -i 2linux.com 表示2linux.com的访问对应到is_b组,use_backend b_server if is_b,表示is_b组时 对应到backend b_server块的内容。也就是如上图的 backend b_server,在这个块中我们设置其负载均衡的子节点。

设置子节点

代码语言:javascript
复制
backend b_server  
        mode http #http 模式  
        stats   uri  /haproxy
        balance  leastconn #使用的分配算法
        cookie  JSESSIONID prefix  
        stats   hide-version  
        option  httpclose
        server test_2   192.168.61.129:80 check  weight 5  check inter 2000 rise 2 fall 3 
        server test_3    192.168.61.132:80 check  weight 5  check inter 2000 rise 2 fall 3 

server test_2 ,server test_3为设置的子节点信息。 server test_2 192.168.61.129:80 check weight 5 check inter 2000 rise 2 fall 3 表示其中一个节点ip为192.168.61.129:80 , 权重weight为5(权重越高请求几率越高) ,check inter 2000 rise 2 fall 3 集群安全检查 2000毫秒检查一次,尝试两次第三次失败将被踢出集群。 如配置我在这里设置了两个节点 129和132.

管理页面

代码语言:javascript
复制
listen stats_auth 
	bind 192.168.61.130:8080 #集群管理界面访问ip
	stats refresh 20s
        stats enable
        stats uri  /admin-status   #集群管理界面访问地址
        stats auth  admin:linux123  #登录用户名
        stats admin if TRUE

这块的配置是集群的web管理页面,如配置注释配置即可

测试

我在129和132配置了不同的页面,我们可以访问进行测试。如下图可以看出测试成功

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装haproxy
  • haproxy配置文件配置
    • 设置域名对应的组
      • 设置子节点
        • 管理页面
          • 测试
          相关产品与服务
          负载均衡
          负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档