4

HaProxy高可用解决方案,简介、部署、使用

 1 year ago
source link: https://blog.51cto.com/lidabai/5661253
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

HaProxy高可用解决方案,简介、部署、使用

精选 原创

键客李大白 2022-09-08 11:00:30 博主文章分类:李大白的运维笔记 ©著作权

文章标签 负载均衡 CentOS7 文章分类 其它 云计算 阅读数172

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

Session rate会话率:每分钟产生的会话数
Session concurrency 并发会话数: 服务器处理会话的时间越长,并发会话数越多;
Date rate 数据速率: 以MB/s、Mbps衡量

HaProxy简介

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

HAProxy是一个使用C语言编写、免费的负载均衡软件,可以运行于大部分主流的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: 客户端请求被深度分析后再发往服务器;
  • tcp:4层调度,不检查七层信息;
  • Health: 仅做健康检查(不建议使用);

HAProxy优缺点

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

缺点
 正则表达式弱于Nginx;
 日志依赖于Syslogd;


二、HAProxy安装(yum)

2.1 安装haproxy

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

$ yum  install  -y  haproxy
$ haproxy   -v  #查看HAProxy版本
HA-Proxy version 1.5.18 2016/05/10
Copyright 2000-2016 Willy Tarreau <[email protected]>
2022年最新版本为2.6

2.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: 定义后端服务

2.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高可用解决方案,简介、部署、使用_负载均衡

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

  • 1
  • 1收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK