当前位置:   article > 正文

haproxy负载均衡介绍与部署_haproxy.service

haproxy.service

haproxy概述

ha-proxy是一款高性能的负载均衡软件。因为其专注于负载均衡这一件事情,因此与nginx比起来在负载均衡这件事情上做更好,更专业。

负载均衡是通过OSI协议对应的
7层负载均衡:用的7层http协议,
4层负载均衡:用的是tcp协议加端口号做的负载均衡

ha-proxy的特点

ha-proxy 作为目前流行的负载均衡软件,必须有其出色的一面。下面介绍一下ha-proxy相对LVS,Nginx等负载均衡软件的优点。

  • 支持tcp / http 两种协议层的负载均衡,使得其负载均衡功能非常丰富。
  • 支持8种左右的负载均衡算法,尤其是在http模式时,有许多非常实在的负载均衡算法,适用各种需求。
  • 性能非常优秀,基于单进程处理模式(和Nginx类似)让其性能卓越。
  • 拥有一个功能出色的监控页面,实时了解系统的当前状况。
  • 功能强大的ACL支持,给用户极大的方便。

haproxy配置文件详解

global   //全局配置
        log 127.0.0.1 local3 info  //日志配置
        maxconn 4096    //最大连接限制(优先级低)
        user nobody
        group nobody
        daemon   //守护进程运行
        nbproc 1  //haproxy进程数
defaults   //针对(listen和backend块进行设置没如果块中没设置,则使用默认设置)默认配置
        log                   global  //日志使用全局配置
        mode           http  //模式7层LB
        maxconn 2048   //最大连接数(优先级中)
        retries         3   //健康检查。3次连接失败就认为服务不可用
        option        redispatch   //服务不可用后的操作,重定向到其他健康服务器
        stats        uri  /haproxy    //web页面状态模块功能开启
        stats auth          qianfeng:123  //状态模块认证(用户名qianfeng密码123)
        contimeout        5000   //定义haproxy将客户端!!!请求!!!转发至后端服务器,所等待的超时时长
    clitimeout         50000  //haproxy作为客户,和后端服务器之间!!!空闲连接!!!的超时时间,到时候发送fin指令
        srvtimeout            50000  //haproxy作为服务器,和用户之间空闲连接的超时时间,到时候发送fin指令
#timeout connect 5000
#timeout client 50000
#timeout server 50000
frontend http-in   //前端配置块。面对用户侧
        bind 0.0.0.0:80  //面对用户监听地址和端口
        mode http  //http模式的LB
        log global  //日志使用全局配置
        option httplog  //默认日志格式非常简陋,仅包括源地址、目标地址和实例名称,而“option httplog参数将会使得日志格式变得丰富许多,其通常包括但不限于HTTP请求、连接计时器、会话状态、连接数、捕获的首部及cookie、“frontend”、“backend”及服务器名称,当然也包括源地址和端口号等。
         option httpclose  // 每次请求完毕后,关闭http通道
     acl html url_reg  -i  \.html$  //1. 访问控制列表名称html。规则要求访问以html结尾的url时
     use_backend html-server if  html  //2.如果满足acl html规则,则推送给后端服务器 html-server
     default_backend html-server  // 3:默认的后端服务器是 html-server
backend html-server  //后端服务器名称为  html-server
        mode http  //模式为7层代理
        balance roundrobin  //轮循(rr)
        option httpchk GET /index.html  //允许用http协议检查server 的健康
        cookie SERVERID insert indirect nocache  //轮询的同时,根据插入的cookie SERVERID  的值来做会话保持,将相同的用户请求,转发给相同的真实服务器。
        server html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
        server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5
cookie 3 服务器ID,避免rr算法将客户机请求转发给其他服务器 ,对后端服务器的健康状况检查间隔为2000毫秒,连续2次健康检查成功,则认为是有效的,连续5次健康检查失败,则认为服务器宕机
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

haproxy算法

roundrobin

轮询,在服务器的处理时间保持均匀分布时,这是最平衡,最公平的算法.此算法是动态的,这表示其权重可以在运行时进行调整

static-rr

基于权重进行轮询,与roundrobin类似,但是为静态方法,在运行时调整其服务器权重不会生效.不过,其在后端服务器连接数上没有限制

leastconn

新的连接请求被派发至具有最少连接数目的后端服务器

source

将请求的源地址进行hash运算,并由后端服务器的权重总数相除后派发至某匹配的服务器.这可以使得同一个客户端IP的请求始终被派发至某特定的服务器

haproxy部署

  • 实验准备
    开两台RS,一台haproxy调度器,服务为apache

编译安装

//下载软件以及安装依赖包
[root@haproxy ~]# https://github.com/haproxy/haproxy/archive/refs/tags/v2.6.0.tar.gz
[root@haproxy ~]# yum -y install make gcc pcre-devel bzip2-devel openssl-devel systemd-devel

//创建系统用户,解压安装包 
[root@haproxy ~
  • 1
  • 2
  • 3
  • 4
  • 5
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/987919
推荐阅读
相关标签
  

闽ICP备14008679号