HAproxy 负载均衡器

畅聊架构 2020-02-26

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

HAproxy 负载均衡器

相关推荐

gamezouni / 0评论 2013-07-28