• ⑤.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
    
  • 相关阅读:
    BZOJ1033:[ZJOI2008]杀蚂蚁antbuster(模拟)
    BZOJ4001:[TJOI2015]概率论(卡特兰数,概率期望)
    BZOJ1820:[JSOI2010]Express Service 快递服务(DP)
    BZOJ4066:简单题(K-D Tree)
    2110. [NOIP2015普及]金币
    73. 找最佳通路
    cogs 7. 通信线路
    codevs 3295 落单的数
    151. [USACO Dec07] 建造路径
    必备算法之二叉树的相关操作
  • 原文地址:https://www.cnblogs.com/yangtao416/p/16517225.html
Copyright © 2020-2023  润新知