HaProxy高可用解决方案,简介、部署、使用
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高可用解决方案,简介、部署、使用
精选 原创衡量负载均衡器性能的因素
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
备注:
Queue队列数据的信息(当前队列数量,最大值,队列限制数量);
Session rate每秒会话率(当前值,最大值,限制数量);
Sessions总会话量(当前值,最大值,总量,Lbtot: total number of times a server was selected选中一台服务器所用的总时间);
Bytes(入站、出站流量);
Denied(拒绝请求、拒绝回应);
Errors(错误请求、错误连接、错误回应);
Warnings(重新尝试警告retry、重新连接redispatches);
Server(状态、最后检查的时间(多久前执行的最后一次检查)、权重、备份服务器数量、down机服务器数量、down机时长)。
- 1赞
- 1收藏
- 评论
- 分享
- 举报
上一篇:skywalking简介与部署
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK