⑤.haproxy的proxies配置

代理相关配置:

  • frontend 用于定义一系列监听的端口,这些端口可接受客户端请求并与之建立连接
  • backend 用于定义一系列后端服务器,代理将会将对应客户端的请求转发至这些服务器
  • listen 通过关联前端和后端定义一个完整的代理

frontend

1.1 mode 参数

mode概念: 设置haproxy实例运行的协议
mode语法: mode {tcp|http}

  • tcp 实例运行与tcp模式,不对7层报文做任何检查,通常用于SSL SSH MYSQL等应用
  • http 实例运行于http模式,客户端请求服务端,服务端重新封装请求报文,请求后端真实节点
frontend web
         mode http
         bind *:80
         default_backend webservers
backend webservers
        balance roundrobin
        server web01 192.168.1.254:80 check
        server web02 192.168.1.254:81 check

1.2 bind 参数

  • bind概念 设置haproxy实例运行的端口
  • bind语法 bind :<port_range> interface
    1. address 可选选项 其可以为主机名 ipv4 ipv6地址或者,将其指定为或者0.0.0.0时,将监听当前系统的所有ipv4地址;
    2. port_range 可以是一个特定的TCP端口 也可以是一个端口范围 如 8080-9090;
    3. interfack 指定物理接口名称,仅能在linux系统上使用 其不使用接口别名 只有管理有权限指定绑定的物理接口
      bind实例:
#----------------
# listen 中定义 bind
#-----------------
listen proxy.yangyijing.cn
       bind  *:80
       mode  tcp
       server web1 192.168.1.254:80

#-----------------
# frontend中定义的bind
#-----------------
frontend proxy.yangyijing.cn
         bind *:8899-9090
         mode http
         use_backend  webcluster

1.3 macconn参数

  • maxconn概念: 设定一个前端的最大并发连接数,对于大型站点尽可能提高此值,从而避免haproxy无法应答用户请求,此值在此的定义不能高出global段中的定义
  • maxconn注意: haproxy会为每个连接维持两个缓冲,每个缓冲大小为8kb,加上其他的数据。每个连接大约占用17kb的RAM空间,这意味着经过适当优化后,1GB的可用RAM空间将能维护40000-50000并发连接
  • maxconn语法: maxconn
global
        maxconn 5000

defaults
        maxconn 4000

frontend web
         mode http
         bind *:80
         maxconn 3000
         default_backend webservers

1.4 server参数

  • 为后端声明一个server 节点信息 因此不能由于default和frontend区段
  • server语法: server
    : [param]
    1.name 为此服务器指定表示名称,会出现在日志文件中
    2.address 服务器的ip地址 也支持可解析的主机名称
    3.port 指定将连接所发送节点的目标端口 如未设定,则使用客户端请求的端口
    4.param 为此服务器设定的一系列参数
1.4.1 backup
  • backup设定为备用服务器
  • 在负载均衡场景中,所有的正常server均不可用时,此backup节点会顶替提供服务
1.4.2 check

对此server进行tcp的健康状态检查

backend webservers
        balance roundrobin
        server web01 192.168.1.254:80 check
        server web02 192.168.1.254:81 check
        server web03 192.168.1.254:82 check backup
1.4.3 inter

设定健康检查的间隔时间 单位为毫秒 默认为2000毫秒 2s

backend webservers
        balance roundrobin
        server web01 192.168.1.254:80 check  inter 3000
        server web02 192.168.1.254:81 check  inter 3000
        server web03 192.168.1.254:82 check  inter 3000
1.4.4 rise

设置离线状态转至成功状态需要成功检查的次数

backend webservers
        balance roundrobin
        server web01 192.168.1.254:80 check  inter 3000 rise 2
        server web02 192.168.1.254:81 check  inter 3000 rise 2
        server web03 192.168.1.254:82 check  inter 3000 rise 2
1.4.5 fall

设置正常状态转换为不可用状态,需要检查的次数

backend webservers
        balance roundrobin
        server web01 192.168.1.254:80 check  inter 3000 rise 2 fall 3
        server web02 192.168.1.254:81 check  inter 3000 rise 2 fall 3
        server web03 192.168.1.254:82 check  inter 3000 rise 2 fall 3
1.4.6 maxconn
  • 指定此服务器接收的最大并发连接数
  • 如果发此服务器的连接数高于指定的值 多余的请求将放置队列
backend webservers
        balance roundrobin
        server web01 192.168.1.254:80 check  inter 3000 rise 2 fall 3 maxconn 3000
        server web02 192.168.1.254:81 check  inter 3000 rise 2 fall 3 maxconn 3000

1.4.7 maxqueue
  • 设置请求队列的最大长度
  • 当请求超过maxconn设定的数值,剩余请求进入排队状态,排队的最大长度有maxqueue决定
backend webservers
        balance roundrobin
        server web01 192.168.1.254:80 check  inter 3000 rise 2 fall 3 maxconn 3000 maxqueue 200
        server web02 192.168.1.254:81 check  inter 3000 rise 2 fall 3 maxconn 3000 maxqueue 200
1.4.8 wight

权重

backend webservers
        balance roundrobin
        server web01 192.168.1.254:80 check  inter 3000 rise 2 fall 3 maxconn 3000 maxqueue 200 weight 1
        server web02 192.168.1.254:81 check  inter 3000 rise 2 fall 3 maxconn 3000 maxqueue 200 weight 8

for i in {1..10};do  curl http://192.168.1.137;done
254-81
254-81
254-81
254-82
254-81
254-81
254-81
254-81
254
254-81
posted @ 2022-07-25 14:17  老夫聊发少年狂88  阅读(125)  评论(0编辑  收藏  举报