当前位置:网站首页>HAProxy高可用解决方案

HAProxy高可用解决方案

2022-07-04 12:43:00 51CTO


中添加--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直接进行安装

      
      
$ y u m i n s t a l l - y h a p r o x y
  • 1.

查看HAProxy版本

      
      
$ h a p r o x y - v
H A - P r o x y v e r s i o n 1 . 5 . 1 8 2 0 1 6 / 0 5 / 1 0
C o p y r i g h t 2 0 0 0 - 2 0 1 6 W i l l y T a r r e a u < w i l l y @ h a p r o x y . o r g >
  • 1.
  • 2.
  • 3.

2022年最新版本为2.6


2)修改配置文件


      
      
$ v i m / e t c / h a p r o x y / h a p r o x y . c f g
g l o b a l
l o g 1 2 7 . 0 . 0 . 1 l o c a l 2
c h r o o t / v a r / l i b / h a p r o x y
p i d f i l e / v a r / r u n / h a p r o x y . p i d # p i d
m a x c o n n 4 0 0 0 # 4 0 0 0
u s e r h a p r o x y
g r o u p h a p r o x y
d a e m o n # d e a m o n

d e f a u l t s
m o d e h t t p # h t t p
l o g g l o b a l #
o p t i o n h t t p l o g # h t t p
o p t i o n d o n t l o g n u l l #
o p t i o n h t t p - s e r v e r - c l o s e
o p t i o n f o r w a r d f o r e x c e p t 1 2 7 . 0 . 0 . 0 / 8
o p t i o n r e d i s p a t c h # S e r v e r i d
r e t r i e s 3 # 3
t i m e o u t h t t p - r e q u e s t 1 0 s
t i m e o u t q u e u e 1 m
t i m e o u t c o n n e c t 1 0 s
t i m e o u t c l i e n t 1 m #

f r o n t e n d m a i n *: 5 0 0 0 #
d e f a u l t _ b a c k e n d a p p # a p p
b a c k e n d s t a t i c #
b a l a n c e r o u n d r o b i n
s e r v e r s t a t i c 1 2 7 . 0 . 0 . 1: 4 3 3 1 c h e c k

b a c k e n d a p p
b a l a n c e r o u n d r o b i n
s e r v e r a p p 1 1 2 7 . 0 . 0 . 1: 5 0 0 1 c h e c k

l i s t e n s t a t u s b i n d *: 1 0 2 5 0 #
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.

{配置文件构成}

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


3)服务启停​

      
      
$ s y s t e m c t l e n a b l e - - n o w h a p r o x y . s e r v i c e # h a p r o x y
$ s y s t e m c t l s t a t u s h a p r o x y . s e r v i c e #
$ s y s t e m c t l s t o p h a p r o x y . s e r v i c e # h a p r o x y . s e r v i c e
  • 1.
  • 2.
  • 3.


监控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机时长)。






原网站

版权声明
本文为[51CTO]所创,转载请带上原文链接,感谢
https://blog.51cto.com/lidabai/5439523