HAProxy

HAProxy简介

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,它是免费、开源、快速并且可靠的一种解决方案。

HAProxy的特点

  • HAProxy 也是支持虚拟主机的,可以工作在4、7层(支持多网段。
  • HAProxy 的优点能够补充 Nginx 的一些缺点,比如支持 Session 的保持,Cookie的引导;同时支持通过获取指定的 url 来检测后端服务器的状态。
  • HAProxy 跟 LVS 类似,本身就只是一款负载均衡软件;单纯从效率上来讲HAProxy 会比 Nginx 有更出色的负载均衡速度,在并发处理上也是优于 Nginx 的。
  • HAProxy 支持 TCP 协议的负载均衡转发,可以对 MySQL 读进行负载均衡,对后端的 MySQL 节点进行检测和负载均衡,大家可以用 LVS+Keepalived 对 MySQL主从做负载均衡。
  • HAProxy 负载均衡策略非常多, HAProxy 的负载均衡算法现在具体有如下8种:
    – roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;
    –static-rr,表示根据权重,建议关注;
    – leastconn,表示最少连接者先处理,建议关注;
    – source,表示根据请求源 IP,这个跟 Nginx 的 IP_hash 机制类似,我们用其作为解决 session 问题的一种方法,建议关注;
    – ri,表示根据请求的 URI;
    – rl_param,表示根据请求的 URl 参数’balance url_param’ requires an URLparameter name;
    – hdr(name),表示根据 HTTP 请求头来锁定每一次 HTTP 请求;
    – rdp-cookie(name),表示根据据 cookie(name)来锁定并哈希每一次 TCP 请求。

HAPorxy缺点:

  • 不支持POP/SMTP协议
  • 不支持SPDY协议
  • . 不支持HTTP cache功能。现在不少开源的lb项目,都或多或少具备HTTP cache功能。
  • 重载配置的功能需要重启进程,虽然也是soft restart,但没有Nginx的reaload更为平滑和友好。
  • 多进程模式支持不够好

拓扑

与lvs-dr类似,但haproxy只需一块网卡
HAProxy拓扑
原理

  • 它的原理是proxy代理。客户端把请求发送到HAProxy后,HAProxy再替用户发送请求到web服务器,web服务器响应HAProxy,把页面发给HAProxy。HAProxy再把页面发给客户端。

安装

yum install -y haproxy 

启停

systemctl start haproxy
systemctl stop haproxy
systemctl status haproxy

配置文件

HAProxy 配置参数来源

  • 命令行:总具有最高优先级
  • global部分:全局设置进程级别参数
  • 代理申明部分
    – 来自于default、listen、frontend、backend
  • 配置文件可由如下部分构成
    – default
  • 为后续的其他部分设置缺省参数
  • 缺省参数可以被后续部分重置

– frontend

  • 描述接收客户端侦听套接字(socket)集

– backend

  • 描述转发连接的服务器集

– listen

把frontend和backend结合到一起的完整申明

ji

在这里插入图片描述
在这里插入图片描述
删除 #main frontend which proxys to the backends 以下的内容,并自定义如下内容

listen stats
        bind 0.0.0.0:1080    # 监控页面端口号      
        stats refresh 30s     # 监控页面自动刷新时间
        stats uri /health     # 自定义监控页面网址
        stats realm  HaManager   # 统计页面密码框上的提示文本
        stats auth admin:admin	# 用户名:密码
        stats hide-version             # 隐藏统计页面上的HAProxy的版本信息
listen myweb 0.0.0.0:80
        cookie SERVERID rewrite
        balance roundrobin     #调度算法 rr
        server web1 192.168.4.1:80 cookie a1i1 check inter 2000 rise 2 fall 5   
        # 每2000ms检查一次服务器,2次成功成功是好的,5次表示失败
        server web2 192.168.4.2:80 cookie a1i2 check inter 2000 rise 2 fall 5  

日志

/etc/rsyslog.conf

构成

Facility.priority 相当于 服务、优先级

Facility 可以记录这些关键字:auth, authpriv, cron,daemon,kern,lpr,mail,mark,news,security,syslog,user,uucp,以及local0到local7
local0到local7是预留出来的接口,供第三方程序调用
Priority 可以使用的关键字:debug、info、notice、warning、warn、err
error、crit、alert、emerg、panic
Debug是最不严重的级别,panic是最严重的界别。如果日志记录优先级是info,表示比info严重的日志都需要记录

配置haproxy日志
1、配置本机接受通过网络发来的日志

vim /etc/rsyslog.conf
Provides UDP syslog reception
#$ModLoad imudp
$UDPServerRun 514
#Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

systemctl restart rsyslog

2、查看日志( 访问HAProxy调度器 可以看到日志信息)

tailf /var/log/meassages

访问健康状态检查页面

在这里插入图片描述
备注:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值