当前位置: 首页 > news >正文

linux系统haproxy负载均衡工具的介绍以及使用

haproxy

      • 概述
      • haproxy的特点
      • haproxy算法
      • haproxy做四层负载均衡
      • haproxy做七层负载均衡

概述

ha-proxy是一款高性能的负载均衡软件。其专注于负载均衡这一些事情,因此与nginx比起来,负载均衡做的更好haproxy---主要是做负载均衡的7层,也可以做4层负载均衡
apache也可以做7层负载均衡,但是很麻烦。实际工作中没有人用。
负载均衡是通过OSI协议对应的
7层负载均衡:用的7层http协议,
4层负载均衡:用的是tcp协议加端口号做的负载均衡

haproxy的特点

ha-proxy 作为目前流行的负载均衡软件,必须有其出色的一面。下面介绍一下ha-proxy相对LVS,Nginx等负载均衡软件的优点。支持tcp / http 两种协议层的负载均衡,使得其负载均衡功能非常丰富。
支持8种左右的负载均衡算法,尤其是在http模式时,有许多非常实在的负载均衡算法,适用各种需求。
性能非常优秀,基于事件驱动的链接处理模式及单进程处理模式(和Nginx类似)让其性能卓越。
拥有一个功能出色的监控页面,实时了解系统的当前状况。
功能强大的ACL支持,给用户极大的方便。

haproxy算法

roundrobin
基于权重进行轮询,在服务器的处理时间保持均匀分布时,这是最平衡,最公平的算法.此算法是动态的,这表示其权重可以在运行时进行调整.不过在设计上,每个后端服务器仅能最多接受4128个连接static-rr wrr
基于权重进行轮询,与roundrobin类似,但是为静态方法,在运行时调整其服务器权重不会生效.不过,其在后端服务器连接数上没有限制leastconn
新的连接请求被派发至具有最少连接数目的后端服务器.

haproxy做四层负载均衡

haproxy配置文件:
cat /etc/haproxy/haproxy.cfgHaproxy L4
=================================================================================
globallog         127.0.0.1 local2pidfile     /var/run/haproxy.pidmaxconn     4000user        haproxygroup       haproxydaemonnbproc      1
defaultsmode                    tcp #工作模式 http ,tcp 是 4 层,http是 7 层	log                     globaloption                  redispatchretries                 3maxconn                 4000contimeout	            5000clitimeout	            50000srvtimeout	            50000
listen stats           #建立haproxy的监控bind			*:81stats                   	enablestats uri              	/haproxy   #监控页面的站点stats auth           	ximu:0    #监控页面的账号密码
frontend  webmode                   	httpbind                    	    *:80option                  httplogdefault_backend    httpserversbackend httpserversbalance     roundrobinserver http1 192.168.246.162:80 maxconn 2000 weight 1 check inter 1s rise 2 fall 2server http2 192.168.246.163:80 maxconn 2000 weight 1 check inter 1s rise 2 fall 2listen mysqlbind *:3306mode tcpbalance roundrobinserver mysql1 192.168.246.163:3306 weight 1  check inter 1s rise 2 fall 2server mysql2 192.168.246.162:3306 weight 1  check inter 1s rise 2 fall 2

haproxy做七层负载均衡

globallog         127.0.0.1 local2 infopidfile     /var/run/haproxy.pidmaxconn     4000   #优先级低user        haproxygroup       haproxydaemon               #以后台形式运行ha-proxynbproc 1		    #工作进程数量  cpu内核是几就写几
defaultsmode                    http  #工作模式 http ,tcp 是 4 层,http是 7 层	log                     globalretries                 3   #健康检查。3次连接失败就认为服务器不可用,主要通过后面的check检查option                  redispatch  #服务不可用后重定向到其他健康服务器。maxconn                 4000  #优先级中contimeout	            5000  #ha服务器与后端服务器连接超时时间,单位毫秒msclitimeout	            50000 #客户端超时srvtimeout	            50000 #后端服务器超时
listen statsbind			*:81    #这个端口要和监听的端口不一致,要不然会端口冲突stats                   	enablestats uri              	/haproxy  #使用浏览器访问 http://192.168.246.169/haproxy,可以看到服务器状态  stats auth           	qianfeng:123  #用户认证,客户端使用elinks浏览器的时候不生效
frontend  webmode                   	http  bind                    	    *:80   #监听哪个ip和什么端口option                  httplog		#日志类别 http 日志格式acl html url_reg  -i  \.html$  #1.访问控制列表名称html。规则要求访问以html结尾的urluse_backend httpservers if  html #2.如果满足acl html规则,则推送给后端服务器httpserversdefault_backend    httpservers   #默认使用的服务器组
backend httpservers    #名字要与上面的名字必须一样balance     roundrobin  #负载均衡的方式server  http1 192.168.246.162:80 maxconn 2000 weight 1  check inter 1s rise 2 fall 2server  http2 192.168.246.163:80 maxconn 2000 weight 1  check inter 1s rise 2 fall 2
http://www.lryc.cn/news/298015.html

相关文章:

  • 七、Nacos源码系列:Nacos服务发现
  • Vue源码系列讲解——模板编译篇【一】(综述)
  • 【机器学习】数据清洗之识别异常点
  • MacOS 制作 TF 卡/ U 盘镜像
  • 怎么用postman调用webservice(反推SoapUI)
  • 【开源】JAVA+Vue.js实现衣物搭配系统
  • 【Flask + AI】接入CHATGLM API 实现翻译接口
  • 并发事务带来的问题及解决方法
  • CRNN介绍:用于识别图中文本的深度学习模型
  • 机器人运动学林沛群——变换矩阵
  • 阿里云增加数据库访问白名单
  • Rust基础拾遗--辅助功能
  • 【数据结构】双向链表(链表实现+测试+原码)
  • ChatGPT 3.5与4.0:深入解析技术进步与性能提升的关键数据
  • 前端JavaScript篇之ajax、axios、fetch的区别
  • 【PyTorch][chapter 15][李宏毅深度学习][Neighbor Embedding-LLE]
  • 在JSP中实现JAVABEAN
  • 智能优化算法 | Matlab实现飞蛾扑火(MFO)(内含完整源码)
  • LSF 主机状态 unreach 分析
  • SpringBoot日志
  • 006集——where语句进行属性筛选——arcgis
  • 《动手学深度学习(PyTorch版)》笔记8.3
  • 静态时序分析:建立时间分析
  • 深入探究 HTTP 简化:httplib 库介绍
  • ARP欺骗攻击利用之抓取https协议的用户名与密码
  • <s-table>、<a-table>接收后端数据
  • [数学]高斯消元
  • 【Linux】gdb调试与make/makefile工具
  • 使用Arcgis裁剪
  • sheng的学习笔记-网络爬虫scrapy框架