中添加 --line-numbers 选项



衡量负载均衡器性能的因素

Session rate会话率:每分钟产生的会话数

Session concurrency 并发会话数: 服务器处理会话的时间越长,并发会话数越多;

Date rate 数据速率: 以MB/s、Mbps衡量



HaProxy简介

官方网站: https://www.haproxy.org/

HAProxy是个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上。

适用于负载特大的Web站点,这些站点通常又需要会话保持或者七层代理。


HAProxy的核心功能

  • 负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法
  • 健康检查:支持TCP和HTTP两种健康检查模式
  • 会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持
  • SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输
  • HTTP请求重写与重定向
  • 监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态


HAProxy工作模式

  • http: 客户端请求被深度分析后再发往服务器;
  • tcp4层调度,不检查七层信息;
  • Health 仅做健康检查(不建议使用);


HAProxy优缺点

优点

  • 支持sessio、cookie功能;
  • 可以通过Url进行健康检查;
  • 效率、负载均衡速度高于Nginx而低于LVS;
  • HAProxy支持TCP,可以对MySQL进行负载均衡;
  • 调度算法丰富;


缺点

  • 正则表达式弱于Nginx;
  • 日志依赖于Syslogd;


HAProxy安装

1)安装haproxy

CentOS系统可以使用yum直接进行安装

$ yum install -y haproxy

查看HAProxy版本

$ haproxy -v
HA-Proxy version 1.5.18 2016/05/10
Copyright 2000-2016 Willy Tarreau <willy@haproxy.org>

2022年最新版本为2.6


2)修改配置文件


$ vim /etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local2
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid #pid
maxconn 4000 #4000
user haproxy
group haproxy
daemon #deamon

defaults
mode http #http
log global #
option httplog #http
option dontlognull #
option http-server-close
option forwardfor except 127.0.0.0/8
option redispatch #Serverid
retries 3 #3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m #

frontend main *:5000 #
default_backend app #app
backend static #
balance roundrobin
server static 127.0.0.1:4331 check

backend app
balance roundrobin
server app1 127.0.0.1:5001 check

listen status bind *:10250 #

{配置文件构成}

global: 全局配置块,配置参数在全局生效;
default: 为后续的其它部分设置缺省参数,缺省参数可以被后续部分重置(即以后续配置部分为准);
frontend:定义前端服务;
backend:定义后端服务


3)服务启停​

$ systemctl enable --now haproxy.service #haproxy
$ systemctl status haproxy.service #
$ systemctl stop haproxy.service #haproxy.service


监控HAProxy状态

查看HAProxy服务端口,然后通过主机IP:端口在浏览器访问HAProxy的监控页面。

$ ss -ntulp | grep haproxy

HAProxy高可用解决方案_负载均衡

HAProxy高可用解决方案_数据_02

备注

  • Queue队列数据的信息(当前队列数量,最大值,队列限制数量);
  • Session rate每秒会话率(当前值,最大值,限制数量);
  • Sessions总会话量(当前值,最大值,总量,Lbtot: total number of times a server was selected选中一台服务器所用的总时间);
  • Bytes(入站、出站流量);
  • Denied(拒绝请求、拒绝回应);
  • Errors(错误请求、错误连接、错误回应);
  • Warnings(重新尝试警告retry、重新连接redispatches);
  • Server(状态、最后检查的时间(多久前执行的最后一次检查)、权重、备份服务器数量、down机服务器数量、down机时长)。