• HAproxy 负载均衡器


    HAproxy 负载均衡器;

    用它的原因 只是单纯做 HTTP协议负载; 同时可以保server端服务IP不被暴露到网络上。

    yum install haproxy -y

    HAproxy 配置示例;

    haproxy 的配置分为5个级别:
    global:全局配置
    Listen:Frontend和Backend的组合体
    defaults:配置默认参数
    frontend:前端响应配置
    backend:后端服务器集群配置

    配置文件示例:

    vi /etc/haproxy/haproxy.cfg
    #
    global
    # to have these messages end up in /var/log/haproxy.log you will
    # need to:
    #
    # 1) configure syslog to accept network log events. This is done
    # by adding the '-r' option to the SYSLOGD_OPTIONS in
    # /etc/sysconfig/syslog
    #
    # 2) configure local2 events to go to the /var/log/haproxy.log
    # file. A line like the following can be added to
    # /etc/sysconfig/syslog
    #
    # local2.* /var/log/haproxy.log
    #
    log 127.0.0.1 local2
    chroot /var/lib/haproxy
    pidfile /var/run/haproxy.pid
    nbproc 4        # 线程数
    maxconn 5000        # 最大连接数
    user haproxy
    group haproxy     # 用户组
    daemon        # 以守护进程进行运行 
    # turn on stats unix socket 
    stats socket /var/lib/haproxy/stats
    
    #
    defaults
    mode http     # 默认 http 模块
    log global        # 采用global模块中定义的日志配置
    option httplog        # 日志类别
    option dontlognull    #保证HAProxy不记录上级负载均衡发送过来的用于检测状态没有数据的心跳包
    option http-server-close    # 当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
    option forwardfor except 127.0.0.0/8    # 设置后端地址
    option redispatch    # serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    retries 3    # 重试次数
    timeout http-request 10s    # http请求超时时间
    timeout queue 1m    # 默认队列超时时间
    timeout connect 10s    # 成功连接一台服务器最长等待时间
    timeout client 1m    # 连接客户端最长等待时间
    timeout server 1m    # 服务器回应客户端最长等待时间 
    timeout http-keep-alive 10s    # 长连接超时时间
    timeout check 10s    # 心跳检测超时
    maxconn 3000    # 最大连接数
    
    # 设置静态监控页
    listen stats
    mode http
    bind 0.0.0.0:2019    # 监听
    stats enable    # 
    stats hide-version    # 隐藏版本
    stats uri /haproxyadmin?stats    # haproxy的状态管理页面,通过/haproxy?stats来访问
    stats realm Haproxy Statistics    # 统计状态
    stats auth admin:admin    # 设置监控页面的用户和密码
    stats admin if TRUE
    
    # 负载配置
    frontend http
    bind *:2020
    mode http
    log global
    option httpclose
    option logasap
    option dontlognull
    capture request header Host len 20
    capture request header Referer len 60
    default_backend servers    # 定义一个服务器组 http_back
    
    # 后端配置
    backend servers
    balance roundrobin # 轮询
    server server1 172.16.2.40:80 check maxconn 2000
    server server2 172.16.2.41:80 check maxconn 2000
    
    后端服务标识区别 ip:port 
    maxconn 最大连接数
    check 关键字 
    inter 健康检查间隔
    2000 毫秒
    rise 检测为正常次数
    fall 检测为失败次数
    weight 权重    

     HAProxy的负载均衡算法:

    roundrobin    #轮询
    static-rr    #加权轮询
    leastconn    #最少连接数
    source       #相当于nginx的ip_hash
    hdr(name)    #根据HTTP请求头来锁定每一次HTTP请求
    uri        #根据请求的URI
    url_param    #根据请求的URl参数'balance url_param' requires an URL parameter name
    rdp-cookie(name)    #表示根据据cookie(name)锁定并哈希每一次TCP请求

     检测页访问  http://ip:2019; 密码前面设置 admin:admin

  • 相关阅读:
    Netty4学习笔记
    Essential Netty in Action 《Netty 实战(精髓)》
    【转】netty案例
    【转】Delphi TClientDataSet的使用
    Macbook brew 安装软件 一直updating Homebrew
    PHP的gc_collect_cycles函数
    Android开发手记之android.content.res.Resources$NotFoundException: Resource ID #0x7f04005e
    Android开发手记之duplicate entry: res/drawable/a.xml
    Android开发手记之Native Crash
    Java与C、C++的10大区别-总结
  • 原文地址:https://www.cnblogs.com/sharesdk/p/12368630.html
Copyright © 2020-2023  润新知