虚拟化容器,大数据,DBA,中间件,监控。

Haproxy 五个配置部分详解

21 12月
作者:admin|分类:应用管理

根据功能和用途将haproxy分为了5个部分,这五个部分不都是必须的,可以根据需要选择就行了,只是将haproxy完整的配置分为了五个部分,这样配置起来全局感就会很强(本文只介绍五个部分作用,不对参数进行细说)

(1)global部分

用来设定全局配置参数,属于进程级的配置,通常和操作系统配置有关。

global
    log         127.0.0.1 local2 info
    pidfile     /var/run/haproxy.pid
    maxconn     4000   #每个haproxy进程可以接受的最多并发数
    user        haproxy
    group       haproxy
    daemon               #以后台形式运行ha-proxy
    nbproc 1            #工作进程数量  cpu内核是几就写几

(2) defaults 部分

默认参数的配置部分。在此部分设置的参数值,默认会自动引用到下面的frontend、backend和listen部分中,因此,如果某些参数属于公用的配置,只需在defaults部分添加一次即可。而如果在frontend、backend和listen部分中也配置了与defaults部分一样的参数,那么defaults部分参数对应的值自动被覆盖。

defaults
    mode                    http  #工作模式 http ,tcp 是 4 层,http是 7 层   
    log                     global
    retries                 3   #健康检查。3次连接失败就认为服务器不可用,主要通过后面的check检查
    option                  redispatch  #服务不可用后重定向到其他健康服务器。
    contimeout              5000  #ha服务器与后端服务器连接超时时间,单位毫秒ms
    clitimeout              50000 #客户端超时
    srvtimeout              50000 #后端服务器超时

(3)frontend部分

此部分用于设置接收用户请求的前端虚拟节点。frontend是在HAProxy 1.3版本之后才引入的一个组件,同时引入的还有backend组件。通过引入这些组件,在很大程度上简化了HAProxy配置文件的复杂性。frontend可以根据ACL规则直接指定要使用的后端backend。(front部分说的通俗一点就是:配置用户访问前端虚拟节点的属性信息,比如配置端口以及什么类型的访问)

frontend  web
    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   #默认使用的服务器组

(4)backend部分

此部分用于设置集群后端服务集群的配置,也就是用来添加一组真实服务器,以处理前端用户的请求。添加的真实服务器类似于LVS中的real server节点。

backend主要是设置集群部分的配置,也就是设置后端有多少个集群节点,还有设置负载均衡的算法,以及对后端服务健康检查的一个设置,这些都需要在backend里面设置,frontend组件和backend组件引入之后简化了配置的复杂性

backend httpservers    #名字要与上面的名字必须一样
    balance     roundrobin  #负载均衡的方式
    server  http1 192.168.13.133:80 maxconn 2000 weight 1  check inter 1s rise 2 fall 2
    server  http2 192.168.13.137:80 maxconn 2000 weight 1  check inter 1s rise 2 fall 2

(5)listen部分

在1.3版本之前是没有fronted和backend的,这两个部分的内容是配置在listen里面,那么一个部分配置起来的内容会非常的多,读起来也非常的难懂。在1.3版本之后分成了backend fronted两个部分,分开之后可读性大大增加,但是还是可以去使用listener这么一个部分,listen部分可以使用也可以不使用

listen这个部分是早期fronted backend的结合,在新版本里面也可以使用也可以不使用

listen stats
    bind            *:81
    stats                       enable
    stats uri               /haproxy  #使用浏览器访问 http://192.168.246.169/haproxy,可以看到服务器状态  
    stats auth              yjssjm:123  #用户认证,客户端使用elinks浏览器的时候不生效

 

浏览483 评论0
返回
目录
返回
首页
Haproxy+Nginx负载均衡实战 Nginx keepalived 长连接