• haproxy使用


    安装

    社区版官网链接:http://www.haproxy.org
    CentOS 7 的默认的base仓库中包含haproxy的安装包文件,但是版本比较旧,是1.5.18的版本,距离当
    前版本已经有较长时间没有更新,由于版本比较旧所以有很多功能不支持,如果对功能和性能没有要求可以使用此版本,否则推荐使用新版本。

    使用yum安装

    [root@localhost ~]# yum -y install  haproxy
    验证版本信息
    [root@localhost ~]# haproxy -v
    	HA-Proxy version 1.5.18 2016/05/10
    	Copyright 2000-2016 Willy Tarreau 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    配置文件

    官方配置介绍:http://cbonte.github.io/haproxy-dconv/2.1/configuration.html
    默认安装后配置文件位置位于/etc/haproxy/haproxy.cfg

    global 全局配置

    chroot #锁定运行目录
    deamon #以守护进程运行
    stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin process 1#socket文件
    user, group, uid, gid  #运行haproxy的用户身份
    nbproc   n #开启的haproxy worker 进程数,默认进程数是一个
    #nbthread 1 #和多进程 nbproc配置互斥(版本有关,CentOS8的haproxy1.8无此问题),指定每个haproxy进程开启的线程数,默认为每个进程一个线程,如果同时启用nbproc和nbthread 会出现以下日志的错误,无法启动服务
    cpu-map 1 0   #绑定haproxy worker 进程至指定CPU,将第1个work进程绑定至0号CPU
    cpu-map 2 1     #绑定haproxy worker 进程至指定CPU,将第2个work进程绑定至1号CPU
    maxconn n   #每个haproxy进程的最大并发连接数
    maxsslconn n   #每个haproxy进程ssl最大连接数,用于haproxy配置了证书的场景下
    maxconnrate n   #每个进程每秒创建的最大连接数量
    spread-checks n #后端server状态check随机提前或延迟百分比时间,建议2-5(20%-50%)之间,默认值0 pidfile #指定pid文件路径
    log 127.0.0.1 local2 info #定义全局的syslog服务器;日志服务器需要开启UDP协议,最多可以定义两个
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    Proxies配置

    defaults [] #默认配置项,针对以下的frontend、backend和listen生效,可以多个name也可以没有name
    frontend    #前端servername,类似于Nginx的一个虚拟主机 server和LVS服务集群。
    backend    #后端服务器组,等于nginx的upstream和LVS中的RS服务器
    listen      #将frontend和backend合并在一起配置,相对于frontend和backend配置更简洁,生产常用
    
    • 1
    • 2
    • 3
    • 4

    Proxies配置-defaults

       option redispatch     #当server Id对应的服务器挂掉后,强制定向到其他健康的服务器,重新派发
    option abortonclose   #当服务器负载很高时,自动结束掉当前队列处理比较久的连接,针对业务情况选择开启
    option http-keep-alive #开启与客户端的会话保持
    option forwardfor     #透传客户端真实IP至后端web服务器
    mode http|tcp #设置默认工作类型,使用TCP服务器性能更好,减少压力
    timeout http-keep-alive 120s #session 会话保持超时时间,此时间段内会转发到相同的后端服务器
    timeout connect 120s #客户端请求从haproxy到后端server最长连接等待时间(TCP连接之前),默认单位ms
    timeout server 600s #客户端请求从haproxy到后端服务端的请求处理超时时长(TCP连接之后),默认单位ms,如果超时,会出现502错误,此值建议设置较大些,访止502错误
    timeout client 600s #设置haproxy与客户端的最长非活动时间,默认单位ms,建议和timeout server相同
    timeout check   5s   #对后端服务器的默认检测超时时间
    default-server inter 1000 weight 3   #指定后端服务器的默认设置
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    Proxies配置-listen 简化配置

    listen web-80
      mode http
      bind 192.168.144.13:80
      server web1 192.168.144.43:80 check inter 3000 fall 3 rise 5
      server web2 192.168.144.53:80 check inter 3000 fall 3 rise 5
    
    • 1
    • 2
    • 3
    • 4
    • 5

    server 配置

    	check #对指定real进行健康状态检查,如果不加此设置,默认不开启检查,只有check后面没
    有其它配置也可以启用检查功能
     #默认对相应的后端服务器IP和端口,利用TCP连接进行周期性健康性检查,注意必须指定
    端口才能实现健康性检查
     addr    #可指定的健康状态监测IP,可以是专门的数据网段,减少业务网络的流量
     port  #指定的健康状态监测端口
     inter  #健康状态检查间隔时间,默认2000 ms
     fall    #后端服务器从线上转为线下的检查的连续失效次数,默认为3
     rise    #后端服务器从下线恢复上线的检查的连续有效次数,默认为2
    weight  #默认为1,最大值为256,0(状态为蓝色)表示不参与负载均衡,但仍接受持久连接
    backup #将后端服务器标记为备份状态,只在所有非备份主机down机时提供服务,类似 Sorry Server
    disabled #将后端服务器标记为不可用状态,即维护状态,除了持久模式,将不再接受连接,状态为深黄色,优雅下线,不再接受新用户的请求
    redirect prefix http://www.baidu.com/ #将请求临时(302)重定向至其它URL,只适用于http模式
    redir http://www.baidu.com       #将请求临时(302)重定向至其它URL,只适用于http模式
    maxconn  #当前后端server的最大并发连接数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    一、初识 Robot Framework
    关于spring项目中,security 对websocket请求和拦截问题
    【golang之路】——govaluate
    k8s-helloword部署一个应用
    sobel边缘检测算法
    swiper动态渲染视图,解决答题问题
    openssl开发详解
    使用SPDK lib搭建自己的NVMe-oF Target应用
    第一季:6成员变量和局部变量【Java面试题】
    计算机毕设 深度学习 大数据 股票预测系统 - python lstm
  • 原文地址:https://blog.csdn.net/qq_42988315/article/details/128970920