栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

HAproxy

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HAproxy

文章目录
  • 对调度软件做一个分析
    • Nginx
      • 优点:
      • 缺点:
    • LVS
      • 优点:
      • 缺点:
    • HAProxy
      • 优点:
      • 缺点:
  • HAProxy负载平衡集群
    • 问题:
    • 方案:
    • 步骤:
      • 步骤一:配置后端web服务器
      • 步骤二:部署HAProxy服务器
      • 步骤三:客户端验证

对调度软件做一个分析 Nginx 优点:
  • 工作在七层,可以针对http做分流策略
  • 1.9版本开始支持四层代理
  • 正则表达式比HAProxy强大
  • 安装、配置、测试简单、通过日志可以解决多数问题
  • 并发量可以达到几万次
  • Nginx还可以作为web服务器使用
缺点:
  • 仅支持http,https、mail协议、应用面小
  • 监控检查仅通过端口,无法使用url检查
LVS 优点:
  • 负载能力强,工作在四层,对内存,CPU消耗低
  • 配置性低,没有太多可配置性,减少人为错误
  • 应用面广,几乎可以作为所有应用提供负载均衡
缺点:
  • 不支持正则表达式,不能实现动静分离
  • 如果网站架构大,LVS-DR配置比较繁琐
HAProxy 优点:
  • 支持session、cookie功能
  • 可以通过url进行健康检查
  • 效率、负载均衡速度,高于Nginx,低于LVS
  • HAProxy支持TCP、可以对MySQL进行负载均衡
  • 调度算法丰富
缺点:
  • 正则弱于Nginx
  • 日志依赖与syslogd
HAProxy负载平衡集群 问题:
  • 准备四台Linux服务器,两台做web服务器,1台安装HAProxy,1台做客户机,实现如下功能
  • 客户端访问HAProxy,HAProxy分发请求到后端Real Server
  • 开启HAProxy监控页面,即使查看调度器状态
  • 设置HAProxy为开机启动
方案:

使用四台虚拟机,一台作为HAProxy调度器,2台作为Real Server、11台作为客户端,拓扑结构如下

主机名网络配置
client192.168.4.10/24
proxy192.168.4.5/24
192.168.2.5/24
web1192.168.2.100/24
web2192.168.2.200//24
步骤:

实验开始之前,需要先配置相应的IP

步骤一:配置后端web服务器
web1
yum -y install httpd
echo "web1 192.168.2.100" > /var/www/html/index.html
systemctl start httpd

web2
yum -y install httpd
echo "web2 192.168.2.200" > /var/www/html/index.html
systemctl start httpd
步骤二:部署HAProxy服务器

1)配置网络,安装软件

yum -y install haproxy

2)修改配置文件

global  #全局设置
log         127.0.0.1 local2
    chroot      /var/lib/haproxy #工作目录  
    pidfile     /var/run/haproxy.pid  #haproxy的pid存放路径
    maxconn     4000   #最大连接数,默认4000
    user        haproxy
    group       haproxy
    daemon             #创建一个进程进入deamon模式运行在后台
defaults  #默认设置
    mode                    http    #默认模式{tcp四层调度|http七层调度|health健康检查}
    log                     global
    option                  httplog  #日志类别http日志格式
    option                  dontlognull  #不记录健康检查的日志信息
    option http-server-close    #每次请求完毕后主动关闭http
    option forwardfor       except 127.0.0.0/8 #后端服务器可以从http header中获得客户端IP
    option                  redispatch #serverid服务器挂掉以后强制定向到其他健康服务器
    retries                 3  #3次连接认为服务不可用
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m        #客户端连接超时
    timeout server          1m    #服务器连接超时
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000  #集群最大连接数
#haproxy有两种集群的格式
#frontend 名称 *:80
#    use_backend abc  
#backend abc
#    balance     roundrobin  #算法
#    server      web1
#    server		web2
#第二种
#listen 名称 *:80
#  balance     roundrobin  #算法
#    server      web1
#    server		web2
#--------------统计页面配置------------------
listen stats    
 bind 0.0.0.0:1080  #监听端口
    stats refresh 30s  #统计页面自动刷新时间
    stats url /stats  #统计页面url
    stats realm Haproxy Manager #进入管理界面查看状态信息
    stats auth admin:admin  #统计页面用户名和密码设置
 
listen server 
	bind 0.0.0.0:80
	balance roundrobin
	server web1 192.168.2.100:80 check inter 2000 rise 2 fall 5
	server web2 192.168.2.200:80 check inter 2000 rise 2 fall 5
#加了check开启健康检查

3)启动服务器并设置开机启动

systemctl restart haproxy.service
systemctl enable haproxy
步骤三:客户端验证

查看网页状态,在浏览器输入http://192.168.4.5:1080/stats ,测试调度器是否正常工作,用户密码都是我们刚刚配置文件定义的,用户admin,密码admin

备注

Queue队列数据的信息(当前队列数量,最大值,队列限制数量)

Session rate每秒会话率(当前值,最大值,限制数量)

Sessions总会话量(当前值,最大值,总量,Lbtot:total number of times a server was selected 选中一台服务器所用的总时间)

Bytes(入站,出站流量)

Denied(拒绝请求,拒绝回应)

Errors(错误请求,错误连接,错误回应)

Warning(从新尝试警告retry,重新连接redispatches)

Server(状态、最后检查的时间(多久前执行的最后一次检查)、权重、备份服务器数量,down机服务器数量、down机时长)

我们关闭web1服务器,查看调度器是否能正常显示

可以看出调度器成功识别web1已经不能工作

再次重新启动,调度器成功识别

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/344084.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号