IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Keepalived热备与HAProxy -> 正文阅读

[系统运维]Keepalived热备与HAProxy

目录

一、Keepalived概述

1、Keepalived描述

2、Keepalived运行原理

二、Keepalived服务

1、 Keepalived高可用服务器拓扑图

2、Keepalived安装与配置

3、客户端验证

三、keepalived+LVS

1、keepalived+LVS拓扑

2、配置web1服务器

3、配置web2服务器

4、配置proxy

5、配置proxy1

6、验证测试

四、HAProxy服务

1、HAProxy概述

1. HAProxy简介

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

3. HAProxy工作模式

2、HAProxy配置案例

1. 拓扑图

2. 部署web1

3. 部署web2

4. 部署HAProxy

5.客户端访问测试

五、集群调度软件对比

1、NGINX分析

2、LVS分析

3、HAProxy分析


一、Keepalived概述

1、Keepalived描述

Keepalived实现了高可用集群

Keepalived最初是为了LVS设计的

? ? ? ? - 专门监控各服务器节点状态

Keepalived后来加入了VRRP功能,防止单点故障

2、Keepalived运行原理

Keepalived检测每个服务器节点状态
服务器节点异常或工作出现故障,Keepalived将故障节点从集群系统中剔除
故障节点恢复后,Keepalived再将其加入到集群系统中
所有工作自动完成,无需人工干预

二、Keepalived服务

1、 Keepalived高可用服务器拓扑图

2、Keepalived安装与配置

① WEB1部署环境与安装Keepalived

[root@web1 ~]# nmcli connection modify ens33 ipv4.method manual ipv4.address 192.168.5.11/24 ipv4.gateway 192.168.5.254 ipv4.dns 114.114.114.114 connection.autoconnect yes
#由于我配的是是网络yum源需要联网,只做实验有本地yum源只配IP和子网即可
[root@web1 ~]# nmcli connection up ens33   #激活网卡
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "192.168.5.11" > /var/www/html/index.html #编写测试网页
[root@web1 ~]# yum install -y keepalived    #安装Keepalived
[root@web1 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id web1             #设置路由ID号,可以随意修改
   vrrp_iptables              #清除防火墙的拦截规则
}

vrrp_instance VI_1 {          
    state MASTER               #主服务器为MASTER(备服务器需要修改为BACKUP)
    interface ens33            #定义网络接口
    virtual_router_id 51       #主备服务器VRID号必须一致
    priority 100               #服务器优先级,优先级高优先获取VIP(数字越大优先级越高)
    advert_int 1        #检查间隔,默认1秒 VRRP心跳包的发送周期,单位为s组播信息发送间隔,两个节点设置必须一样
    authentication {
        auth_type PASS         #验证类型
        auth_pass 1111         #主备服务器密码必须一致
    }
    virtual_ipaddress {    
        192.168.5.80/24        #VIP地址
    }
}
[root@web1 ~]# systemctl restart keepalived.service #重启服务
[root@web1 ~]# ip a s ens33 #会出现5.80的VIP地址

② WEB2部署与安装Keepalived

[root@web2 ~]# nmcli connection modify ens33 ipv4.method manual ipv4.address 192.168.5.12/24 ipv4.gateway 192.168.5.254 ipv4.dns 114.114.114.114 connection.autoconnect yes
#由于我配的是是网络yum源需要联网,只做实验有本地yum源只配IP和子网即可
[root@web2 ~]# nmcli connection up ens33   #激活网卡
[root@web2 ~]# yum -y install httpd
[root@web2 ~]# echo "192.168.5.11" > /var/www/html/index.html #编写测试网页
[root@web2 ~]# yum install -y keepalived    #安装Keepalived
[root@web2 ~]# scp root@192.168.5.11:/etc/keepalived/keepalived.conf /etc/keepalived/ 
#将web1的Keepalived文件覆盖到本地,减少修改时间
[root@web2 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id web2             #设置路由ID号
   vrrp_iptables              
}

vrrp_instance VI_1 {          
    state BACKUP               #主服务器为MASTER(备服务器需要修改为BACKUP)
    interface ens33            
    virtual_router_id 51       
    priority 50               #服务器优先级,优先级高优先获取VIP(数字越大优先级越高)
    advert_int 1
    authentication {
        auth_type PASS         
        auth_pass 1111         
    }
    virtual_ipaddress {    
        192.168.5.80/24      
    }
}
[root@web1 ~]# systemctl restart keepalived.service #重启服务

3、客户端验证

① 默认主备都正常,浮动IP会给到web1

② 若主(web1)异常,浮动IP会给到web2?

[root@web1 ~]# systemctl stop keepalived.service? ?#停止web1的keepalived服务

三、keepalived+LVS

1、keepalived+LVS拓扑

① 使用Keepalived高可用解决调度器单点故障问题

② 主、备调度器上配置LVS

③ 主调度器异常时,Keepalived启用备用调度器

2、配置web1服务器

将第一个实验环境web1、web2的Keepalived服务停掉
[root@web1 ~]# systemctl stop keepalived.service
注意:这里的子网掩码必须是32(也就是全255),网络地址与IP地址一样,广播地址与IP地址也一样
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 #配置VIP地址
DEVICE=lo:0            #设备名称
IPADDR=192.168.5.50    #IP地址
NETMASK=255.255.255.255#子网掩码
NETWORK=192.168.5.50   #网络地址
BROADCAST=192.168.5.50 #广播地址
ONBOOT=yes             #开机是否激活网卡
NAME=lo:0              #网卡名称

注意:因为web1配置与调度器一样的VIP地址,默认肯定会出现地址冲突,
[root@web1 ~]# vim /etc/sysctl.conf  #修改文件,目的(只有调度器响应,其他主机均不响应)
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
#当有arp广播问谁是192.168.5.50时,本机忽略该ARP广播,不做任何回应(防止进站冲突)
#本机不要向外宣告自己的lo回环地址是192.168.5.50(防止出站冲突)
[root@web1 ~]# sysctl -p            #加载系统参数
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
[root@web1 ~]# systemctl restart network        #重启网络服务
[root@web1 ~]# ip a s lo | grep inet            #查看虚拟IP是否生成
    inet 127.0.0.1/8 scope host lo
    inet 192.168.5.50/32 brd 192.168.5.50 scope global lo:0
    inet6 ::1/128 scope host 

3、配置web2服务器

将第一个实验环境web2的Keepalived服务停掉
[root@web2 ~]# systemctl stop keepalived.service
注意:这里的子网掩码必须是32(也就是全255),网络地址与IP地址一样,广播地址与IP地址也一样
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 #配置VIP地址
DEVICE=lo:0            #设备名称
IPADDR=192.168.5.50    #IP地址
NETMASK=255.255.255.255#子网掩码
NETWORK=192.168.5.50   #网络地址
BROADCAST=192.168.5.50 #广播地址
ONBOOT=yes             #开机是否激活网卡
NAME=lo:0              #网卡名称

注意:因为web1配置与调度器一样的VIP地址,默认肯定会出现地址冲突,
[root@web2 ~]# vim /etc/sysctl.conf  #修改文件,目的(只有调度器响应,其他主机均不响应)
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
#当有arp广播问谁是192.168.5.50时,本机忽略该ARP广播,不做任何回应(防止进站冲突)
#本机不要向外宣告自己的lo回环地址是192.168.5.50(防止出站冲突)
[root@web2 ~]# sysctl -p            #加载系统参数
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
[root@web2 ~]# systemctl restart network        #重启网络服务
[root@web2 ~]# ip a s lo | grep inet            #查看虚拟IP是否生成
    inet 127.0.0.1/8 scope host lo
    inet 192.168.5.50/32 brd 192.168.5.50 scope global lo:0
    inet6 ::1/128 scope host 

4、配置proxy

[root@proxy ~]# nmcli connection modify eth0 ipv4.method manual ipv4.address 192.168.5.5/24 ipv4.gateway 192.168.5.254 ipv4.dns 114.114.114.114 connection.autoconnect yes
#由于我配的是是网络yum源需要联网,只做实验有本地yum源只配IP和子网即可
[root@proxy ~]# nmcli connection up eth0
[root@proxy ~]# yum -y install ipvsadm
[root@proxy ~]# yum -y install keepalived
[root@proxy ~]# rm -rf /etc/sysconfig/network-scripts/ifcfg-eth0:0 
#若没有不用删除,之前的实验配置过之前VIP网卡
[root@proxy ~]# ipvsadm -C  #清除所有规则
[root@proxy ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id proxy            #设置路由号
   vrrp_iptables              #清除防火墙规则
}
vrrp_instance VI_1 {        
    state MASTER              #设置为主服务器为MASTER
    interface eth0            #定义网络接口
    virtual_router_id 51      #主备VRID号必须一致
    priority 100              #服务器优先级
    advert_int 1     #检查间隔,默认1秒 VRRP心跳包的发送周期,单位为s组播信息发送间隔,两个节点设置必须一样
    authentication {
        auth_type PASS    #认证方式
        auth_pass 1111    #认证密码,主备必须一致
    }
    virtual_ipaddress {   #设置VIP
    192.168.5.50/24
    }
}

virtual_server 192.168.5.50 80 { #设置ipvsadm的VIP规则
    delay_loop 6         #健康检查时间间隔(不大于6s,值不定)
    lb_algo wrr          #LVS调度算法,wrr加权轮询
    lb_kind DR           #负载均衡调度算法
    #persistence_timeout 50 #会话保持时间,开启后客户端在一定时间内(50秒)始终访问相同服务器
    protocol TCP         #TCP协议

    real_server 192.168.5.11 80 {  #设置后端web服务器真实IP
        weight 1                   #权重值
        TCP_CHECK {                #对后台real_server做健康检查
            connect_timeout 3      #健康检查的超时时间3秒
            nb_get_retry 3         #健康检查的重试次数3次
            delay_before_retry 3   #健康检查的间隔时间3秒
        }
    }
    real_server 192.168.5.12 80 {  #设置后端web服务器真实IP
        weight 2                   #设置权重为2
        TCP_CHECK {                #对后台real_server做健康检查
            connect_timeout 3      #健康检查的超时时间3秒
            nb_get_retry 3         #健康检查的重试次数3次
            delay_before_retry 3   #健康检查的间隔时间3秒
        }
    }
}
[root@proxy ~]# systemctl restart keepalived.service
[root@proxy ~]# ipvsadm -Ln    #查看IP规则
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.5.50:80 wrr
  -> 192.168.5.11:80              Route   1      0          0         
  -> 192.168.5.12:80              Route   2      0          0         
[root@proxy ~]# ip a s eth0 | grep inet  #查看VIP配置
    inet 192.168.5.5/24 brd 192.168.5.255 scope global noprefixroute eth0
    inet 192.168.5.50/24 scope global secondary eth0            #VIP已产生
    inet6 fe80::da6d:94a0:3f30:531/64 scope link noprefixroute

5、配置proxy1

[root@proxy1 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.address 192.168.5.6/24 ipv4.gateway 192.168.5.254 ipv4.dns 114.114.114.114 connection.autoconnect yes
#由于我配的是是网络yum源需要联网,只做实验有本地yum源只配IP和子网即可
[root@proxy1 ~]# nmcli connection up eth0
[root@proxy1 ~]# yum -y install ipvsadm
[root@proxy1 ~]# yum -y install keepalived
[root@proxy1 ~]# scp root@192.168.5.5:/etc/keepalived/keepalived.conf /etc/keepalived/ #拷贝proxy配置文件
[root@proxy1 ~]# ipvsadm -C  #清除所有规则
[root@proxy1 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id proxy1           #设置路由号
   vrrp_iptables              #清除防火墙规则
}
vrrp_instance VI_1 {        
    state BACKUP              #设置为主服务器为MASTER
    interface eth0            #定义网络接口
    virtual_router_id 51      #主备VRID号必须一致
    priority 50               #服务器优先级
    advert_int 1     #检查间隔,默认1秒 VRRP心跳包的发送周期,单位为s组播信息发送间隔,两个节点设置必须一样
    authentication {
        auth_type PASS    #认证方式
        auth_pass 1111    #认证密码,主备必须一致
    }
    virtual_ipaddress {   #设置VIP
    192.168.5.50/24
    }
}

virtual_server 192.168.5.50 80 { #设置ipvsadm的VIP规则
    delay_loop 6         #健康检查时间间隔(不大于6s,值不定)
    lb_algo wrr          #LVS调度算法,wrr加权轮询
    lb_kind DR           #负载均衡调度算法
    #persistence_timeout 50 #会话保持时间,开启后客户端在一定时间内(50秒)始终访问相同服务器
    protocol TCP         #TCP协议

    real_server 192.168.5.11 80 {  #设置后端web服务器真实IP
        weight 1                   #权重值
        TCP_CHECK {                #对后台real_server做健康检查
            connect_timeout 3      #健康检查的超时时间3秒
            nb_get_retry 3         #健康检查的重试次数3次
            delay_before_retry 3   #健康检查的间隔时间3秒
        }
    }
    real_server 192.168.5.12 80 {  #设置后端web服务器真实IP
        weight 2                   #设置权重为2
        TCP_CHECK {                #对后台real_server做健康检查
            connect_timeout 3      #健康检查的超时时间3秒
            nb_get_retry 3         #健康检查的重试次数3次
            delay_before_retry 3   #健康检查的间隔时间3秒
        }
    }
}
[root@proxy1 ~]# systemctl restart keepalived.service 
[root@proxy1 ~]# ipvsadm -Ln                #查看LVS规则
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.5.50:80 wrr
  -> 192.168.5.11:80              Route   1      0          0         
  -> 192.168.5.12:80              Route   2      0          0         
[root@proxy1 ~]# ip a s eth0 | grep inet    #查看VIP配置,因为是从所以没有产生VIP
    inet 192.168.5.6/24 brd 192.168.5.255 scope global noprefixroute eth0
    inet6 fe80::b1e:5f70:5e1e:8c0f/64 scope link noprefixroute 

6、验证测试

① 使用clinet主机(自行配置同网IP)

[root@client ~]# curl 192.168.5.50
192.168.5.11
[root@client ~]# curl 192.168.5.50
192.168.5.12
[root@client ~]# curl 192.168.5.50
192.168.5.12
[root@client ~]# curl 192.168.5.50
192.168.5.11
[root@client ~]# curl 192.168.5.50
192.168.5.12
[root@client ~]# curl 192.168.5.50 #因为是加权轮询,所以web2每次被访问2次

② 使用主机浏览器访问验证轮询效果不加,猜测是缓存机制问题

③ 停止主服务器keepalived,VIP会自动跳到备用服务器

[root@proxy ~]# systemctl stop keepalived.service
[root@proxy1 ~]# ip a s eth0 | grep inet  #proxy1设备查看,VIP已跳到备用服务器
    inet 192.168.5.6/24 brd 192.168.5.255 scope global noprefixroute eth0
    inet 192.168.5.50/24 scope global secondary eth0
    inet6 fe80::b1e:5f70:5e1e:8c0f/64 scope link noprefixroute 

[root@proxy ~]# systemctl start keepalived.service #再开启主服务器
[root@proxy ~]# ip a s eth0 | grep inet            #VIP自动跳到主服务器
    inet 192.168.5.5/24 brd 192.168.5.255 scope global noprefixroute eth0
    inet 192.168.5.50/24 scope global secondary eth0
    inet6 fe80::da6d:94a0:3f30:531/64 scope link noprefixroute
[root@proxy1 ~]# ip a s eth0 | grep inet            #备用服务器VIP自动消失
    inet 192.168.5.6/24 brd 192.168.5.255 scope global noprefixroute eth0
    inet6 fe80::b1e:5f70:5e1e:8c0f/64 scope link noprefixroute 

四、HAProxy服务

1、HAProxy概述

1. HAProxy简介

① 它是免费、快速并且可靠的一种解决方案
② 适用于那些负载大的Web站点,这些站点通常又需要会话保持或七层处理
③ 提供高可用性、、负载均衡以及基于TCP和HTTP应用的代理

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

Session? rate 会话率

? ? ? ? - 每秒钟产生的会话数

Session? concurrency 并发会话数

? ? ? ? - 服务器处理会话的时间越长,并发会话数越多

Data? rate? 数据速率

? ? ? ? - 以MB/s或Mbps衡量

3. HAProxy工作模式

mode? http

? ? ? ? - 客户端请求被深度分析后再发往服务器

mode? tcp

? ? ? ? - 4层调度,不检查第七层信息

mode? health

? ? ? ? - 仅做健康状态检查,已经不建议使用

2、HAProxy配置案例

1. 拓扑图

?通俗的讲,就是客户端要送礼给WEB,HAProxy全程保密的进行,过程中客户端和WEB只是单方面知道HAProxy存在,但是客户端与WEB并不互知

2. 部署web1

[root@web1 ~]# nmcli connection modify ens33 ipv4.method manual ipv4.address 192.168.4.11/24 connection.autoconnect yes
[root@web1 ~]# nmcli connection up ens33    #配置并激活ens33,网卡名根据自己设备实际来
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# systemctl start httpd
[root@web1 ~]# echo "192.168.4.11:web1" > /var/www/html/index.html

3. 部署web2

[root@web1 ~]# nmcli connection modify ens33 ipv4.method manual ipv4.address 192.168.4.11/24 connection.autoconnect yes
[root@web1 ~]# nmcli connection up ens33    #配置并激活ens33,网卡名根据自己设备实际来
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# systemctl start httpd
[root@web1 ~]# echo "192.168.4.11:web1" > /var/www/html/index.html

4. 部署HAProxy

[root@proxy ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.5.5/24 ipv4.gateway 192.168.5.254 ipv4.dns 8.8.8.8 connection.autoconnect yes
[root@proxy ~]# nmcli connection up eth0    #配置并激活eth0

[root@proxy ~]# nmcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.4.5/24 ipv4.gateway 192.168.4.254 ipv4.dns 8.8.8.8 connection.autoconnect yes
[root@proxy ~]# nmcli connection up eth1 #配置并激活eth1

[root@proxy ~]# yum -y install haproxy #安装haproxy
[root@proxy ~]# yum -y install keepalived #安装keepalived
[root@proxy ~]# yum -y install ipvsadm    #安装ipvsadm
[root@proxy ~]# ipvsadm -C                #清除规则
[root@proxy ~]# vim /etc/haproxy/haproxy.cfg #修改配置文件
global
    log         127.0.0.1 local2    #调试错误警告信息
    chroot      /var/lib/haproxy    
    pidfile     /var/run/haproxy.pid#haproxy的pid存放路径
    maxconn     4000                #最大连接数量
    user        haproxy             #用户        
    group       haproxy             #组
    daemon                          #将进程放入deamon模式运行
    stats socket /var/lib/haproxy/stats
defaults
    mode                    http    #默认的模式{tcp | http | health}
    log                     global  #采用全局定义的日志
    option                  httplog #日志类别
    option                  dontlognull #不记录健康检查的日志信息
    option http-server-close        #每次请求完毕后主动关闭http通道
    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      #客户端连接超时
    timeout server          1m      #服务器连接超时
    timeout http-keep-alive 10s 
    timeout check           10s 
    maxconn                 3000    #最大连接次数
frontend  main *:5000               
    acl url_static       path_beg       -i /static /images /javascript /stylesheets
    acl url_static       path_end       -i .jpg .gif .png .css .js 

    use_backend static          if url_static
    default_backend             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
    server  app2 127.0.0.1:5002 check
    server  app3 127.0.0.1:5003 check
    server  app4 127.0.0.1:5004 check
listen  webs *:80            #定义集群,listen后面的名称任意,端口为80
    balance roundrobin       #balance指定调度算法为轮询(不能用简写的rr)
    server  web1 192.168.4.11:80 check inter 2000 rise 2 fall 5
    server  web2 192.168.4.12:80 check inter 2000 rise 2 fall 5
#server指定后端真实服务器,web1和web2的名称可以任意
listen stats 0.0.0.0:1080    #监听端口
    stats refresh 30s        #统计页面自动刷新时间
    stats uri /stats          #统计界面url
    stats realm HaManager    #进入管理界面查看状态信息
    stats auth admin:admin   #统计页面用户名和密码设置
    #stats hide-version      #隐藏统计页面上HAProxy的版本信息
[root@proxy ~]# systemctl enable --now haproxy.service   #启动haproxy

5.客户端访问测试

① 客户端配置与HAProxy相同网络的IP地址,使用浏览器访问http://192.168.5.5,测试调度器是否可正常工作

?② 客户端访问http://192.168.5.5:1080/stats测试状态监控是否正常

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

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

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

Bytes(入站、出站流量);

Denied(拒绝请求、拒绝回应);

Errors(错误请求、错误连接、错误回应);

Warnings(重新尝试警告retry、重新连接redispatches);

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

当停止web2时,监控界面会动态监测

五、集群调度软件对比

1、NGINX分析

优点:
? ? ? ? - 工作在7层,可以针对http做分流策略
? ? ? ? - 1.9版本开始支持4层代理
? ? ? ? - 正则表达式比HAProxy强大
? ? ? ? - 安装、配置、测试简单,通过日志可以解决多数问题
? ? ? ? - 并发量可以达到几万次
? ? ? ? - Nginx还可以作为web服务器使用
缺点:
? ? ? ? - 7层代理仅支持https、https、mail协议,应用面小
? ? ? ? - 监控检查仅通过端口,无法使用url检查

2、LVS分析

优点:
? ? ? ? - 负载能力强,工作在四层,对内存、CPU消耗低
? ? ? ? - 配置性低,没有太多可配置性,减少人为错误
? ? ? ? - 应用面广,几乎可以为所有应用提供负载均衡
缺点:
? ? ? ? - 不支持正则表达式,不能实现动静分离
? ? ? ? - 如果网站架构庞大,LVS-DR配置比较繁琐

3、HAProxy分析

优点:
? ? ? ? - 支持session、cookie功能
? ? ? ? - 可以通过url进行健康检查
? ? ? ? - 效率、负载均衡速度,高于Nginx、低于LVS
? ? ? ? - HAProxy支持TCP,可以对MySQL进行负载均衡
? ? ? ? - 调度算法丰富
缺点:
? ? ? ? - 正则弱于Nginx
? ? ? ? - 日志依赖于syslogd

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 23:22:23  更:2022-07-04 23:23:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:49:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计