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

haproxy

概述

ini 复制代码
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.cfg

Haproxy L4
=================================================================================
global
    log         127.0.0.1 local2
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    nbproc      1
defaults
    mode                    tcp #工作模式 http ,tcp 是 4 层,http是 7 层	
    log                     global
    option                  redispatch
    retries                 3
    maxconn                 4000
    contimeout	            5000
    clitimeout	            50000
	srvtimeout	            50000
listen stats           #建立haproxy的监控
    bind			*:81
    stats                   	enable
    stats uri              	/haproxy   #监控页面的站点
    stats auth           	ximu:0    #监控页面的账号密码
frontend  web
    mode                   	http
    bind                    	    *:80
    option                  httplog
    default_backend    httpservers
    
backend httpservers
    balance     roundrobin
    server http1 192.168.246.162:80 maxconn 2000 weight 1 check inter 1s rise 2 fall 2
    server http2 192.168.246.163:80 maxconn 2000 weight 1 check inter 1s rise 2 fall 2
    
listen mysql
    bind *:3306
    mode tcp
    balance roundrobin
    server mysql1 192.168.246.163:3306 weight 1  check inter 1s rise 2 fall 2
    server mysql2 192.168.246.162:3306 weight 1  check inter 1s rise 2 fall 2

haproxy做七层负载均衡

复制代码
global
    log         127.0.0.1 local2 info
    pidfile     /var/run/haproxy.pid
    maxconn     4000   #优先级低
    user        haproxy
    group       haproxy
    daemon               #以后台形式运行ha-proxy
    nbproc 1		    #工作进程数量  cpu内核是几就写几
defaults
    mode                    http  #工作模式 http ,tcp 是 4 层,http是 7 层	
    log                     global
    retries                 3   #健康检查。3次连接失败就认为服务器不可用,主要通过后面的check检查
    option                  redispatch  #服务不可用后重定向到其他健康服务器。
    maxconn                 4000  #优先级中
    contimeout	            5000  #ha服务器与后端服务器连接超时时间,单位毫秒ms
    clitimeout	            50000 #客户端超时
    srvtimeout	            50000 #后端服务器超时
listen stats
    bind			*:81    #这个端口要和监听的端口不一致,要不然会端口冲突
    stats                   	enable
    stats uri              	/haproxy  #使用浏览器访问 http://192.168.246.169/haproxy,可以看到服务器状态  
    stats auth           	qianfeng:123  #用户认证,客户端使用elinks浏览器的时候不生效
frontend  web
    mode                   	http  
    bind                    	    *:80   #监听哪个ip和什么端口
    option                  httplog		#日志类别 http 日志格式
    acl html url_reg  -i  \.html$  #1.访问控制列表名称html。规则要求访问以html结尾的url
    use_backend httpservers if  html #2.如果满足acl html规则,则推送给后端服务器httpservers
    default_backend    httpservers   #默认使用的服务器组
backend httpservers    #名字要与上面的名字必须一样
    balance     roundrobin  #负载均衡的方式
    server  http1 192.168.246.162:80 maxconn 2000 weight 1  check inter 1s rise 2 fall 2
    server  http2 192.168.246.163:80 maxconn 2000 weight 1  check inter 1s rise 2 fall 2
相关推荐
Cloud_Air75414 分钟前
从零开始使用SSH链接目标主机(包括Github添加SSH验证,主机连接远程机SSH验证)
运维·ssh
Hello.Reader1 小时前
基于 Nginx 的 WebSocket 反向代理实践
运维·websocket·nginx
北冥有鱼被烹1 小时前
【微知】/proc中如何查看Linux内核是否允许加载内核模块?(/proc/sys/kernel/modules_disabled)
linux·服务器
qq_273900232 小时前
CentOS系统防火墙服务介绍
linux·运维·centos
小余吃大鱼2 小时前
CentOS中在线安装Docker(超详细)
linux·docker·centos
程序员JerrySUN2 小时前
驱动开发硬核特训 · Day 19:字符设备驱动实战(控制 LED)
linux·驱动开发
小灰灰__2 小时前
Linux安装ffmpeg7.1操作说明
linux·运维·服务器
互联网搬砖老肖2 小时前
运维打铁:Centos 7 安装 redis_exporter 1.3.5
运维·redis·centos
Zz_waiting.2 小时前
网络原理 - 9
linux·服务器·网络·网络协议·tcp/ip
你又食言了哦3 小时前
linux下使用wireshark捕捉snmp报文
linux·网络·wireshark