0
点赞
收藏
分享

微信扫一扫

Linux驱动.之I2C,iic驱动层(二)

ITWYY 2024-08-11 阅读 28

主要内容:

Keepalived基础(通过VRRP实现高可用功能、设置优先级、VIP)、Keepalived+LVS(通过VRRP和LVS实现高可用+负载均衡、配置LVS规则定义健康检查)、HAproxy服务器(代理服务器)、集群调度软件对比

一、Keepalived概述

Keepalived主要是通过虚拟路由冗余(VRRP)来实现高可用功能

Keepalived运行原理:

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

Keepalived具有三个功能:

  1. 通过VRRP实现主备切换(高可用)
  2. 配置LVS(配置文件自带LVS配置)
  3. 健康检查

软件包:keepalived

配置文件:/etc/keepalived/keepalived.conf


案例1:Keepalived高可用服务器

案例要求:使用Keepalived实现web服务器的高可用

  • 1)Web服务器IP地址分别为192.168.4.100和192.168.4.200
  • 2)Web服务器的浮动IP地址为192.168.4.80(VIP)
  • 3)客户端通过访问VIP地址访问Web页面

主机配置表:

实验网络拓扑:

步骤1:配置防火墙和SELinux

[root@web1 ~]# firewall-cmd --set-default-zone=trusted
[root@web1 ~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
[root@web1 ~]# setenforce 0
[root@web2 ~]# firewall-cmd --set-default-zone=trusted
[root@web2 ~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
[root@web2 ~]# setenforce 0

步骤2:配置网络环境

1)设置Web1服务器网络参数、配置Web服务

[root@web1 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.address 192.168.4.100/24 connection.autoconnect yes
[root@web1 ~]# nmcli connection up eth0

[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "192.168.4.100" > /var/www/html/index.html
[root@web1 ~]# systemctl restart httpd   //启动服务

2)设置Web2服务器网络参数、配置Web服务

[root@web2 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.address 192.168.4.200/24 connection.autoconnect yes
[root@web2 ~]# nmcli connection up eth0

[root@web2 ~]# yum -y install httpd
[root@web2 ~]# echo "192.168.4.200" > /var/www/html/index.html
[root@web2 ~]# systemctl restart httpd    //启动服务

3)配置proxy主机的网络参数(该实验proxy当作客户端主机)

[root@proxy ~]# nmcli connection modify eth0 ipv4.method manual ipv4.address 192.168.4.5/24 connection.autoconnect yes
[root@proxy ~]# nmcli connection up eth0

步骤3:安装、部署Keepalived软件

1)修改Keepalived配置文件(Web1操作)

[root@web1 ~]# yum install -y keepalived    //安装keepalived软件
[root@web1 ~]# vim /etc/keepalived/keepalived.conf   //修改配置文件
global_defs {    //全局配置
...
   router_id web1    //12行,设置路由ID号(web1)
   vrrp_iptables      //13行,手动添加清除防火墙的拦截规则(启动keepalived,它会在防火墙设置拦截规则,拒绝所有服务访问)
...
}
vrrp_instance VI_1 {         //VRRP示例配置
    state MASTER            //21行,主服务器为MASTER(备服务器需修改为BACKUP)
    interface eth0          //22行,定义网络接口(虚拟IP(VIP)配在哪个网卡)
    virtual_router_id 51    //23行,配置VRID(主备服务器VRID号必须一致)
    priority 100       //24行,服务器优先级,优先级高的优先获取VIP(升为MASTER)
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    192.168.4.80/24     //30~32行,主服务器获得虚拟IP(VIP)
    }
}
  • 补充:配置文件的后续内容是提供其它的keepalived服务,可以直接删除配置
  • 补充:通过# scp /etc/keepalived/keepalived.conf 192.168.4.200:/etc/keepalived/

2)修改Keepalived配置文件(web2操作)

[root@web2 ~]# yum install -y keepalived    //安装keepalived软件
[root@web2 ~]# vim /etc/keepalived/keepalived.conf    //修改配置文件
global_defs {   //全局配置
...
   router_id web2     //12行,设置路由ID号(web2)
   vrrp_iptables      //13行,清除防火墙的拦截规则(默认拒绝所有服务访问)
...
}
vrrp_instance VI_1 {         //VRRP示例配置
    state BACKUP            //21行,备服务器为BACKUP(主服务器需修改为MASTER)
    interface eth0          //22行,定义虚拟IP(VIP)配在哪个网卡
    virtual_router_id 51    //23行,配置VRID,主备服务器VRID号必须一致
    priority 95         //24行,服务器优先级小于主MASTER服务器(为BACKUP)
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    192.168.4.80/24      //30~32行,谁是主服务器谁配置VIP
    }
}

3)启动keepalived服务

[root@web1 ~]# systemctl start keepalived.service
[root@web2 ~]# systemctl start keepalived.service

4)验证:

登录Web1服务器查看IP信息:

[root@web1 ~]# ip add show eth0    //因web1优先级为100,为MASTER获得VIP

登录Web2服务器查看IP信息:

[root@web2 ~]# ip add show eth0    //因web2优先级为95,为BACKUP未获得VIP

客户端浏览器访问:

① 使用curl访问http://192.168.4.80,验证是否可正常访问服务

[root@proxy ~]# curl 192.168.4.80   //web1服务器MASTER的页面
192.168.4.100
[root@proxy ~]# curl 192.168.4.80
192.168.4.100

② 当web1服务器的Keepalived服务为stop或关机状态,验证是否可正常访问服务

[root@proxy ~]# curl 192.168.4.80
192.168.4.200
[root@proxy ~]# curl 192.168.4.80
192.168.4.200
  • 补充:web2通过接收MASTER的VRRP状态通告信息,处于BACKUP角色的web2将重新进行选举,进入MASTER角色并获得VIP;(当web1服务恢复,会继续升为MASTER)
  • 补充:keepalived提供热备(高可用),在访问Ping 192.168.4.80是不会中断丢包的。

常见问题:keepalived无法实现负载均衡,只支持实现高可用,即主备切换(选举MASTER分配VIP);而在服务器上使用的任何服务与keepalived无关。假设用户访问web1(MASTER)运行的httpd服务为stop状态,由于服务未开启,显示内容即:“服务访问拒绝”,

[root@web1 ~]# systemctl stop httpd
[root@proxy ~]# curl 192.168.4.80
curl: (7) Failed connect to 192.168.4.80:80; 拒绝连接
[root@proxy ~]# curl 192.168.4.80
curl: (7) Failed connect to 192.168.4.80:80; 拒绝连接


案例2:Keepalived+LVS服务器

案例要求:使用Keepalived为LVS1、LVS2调度器提供高可用功能,防止调度器单点故障,LVS调度器为用户提供负载均衡的Web服务;

  • 1)LVS1调度器真实IP地址为192.168.4.5(DIP)
  • 2)LVS2调度器真实IP地址为192.168.4.6(DIP)
  • 3)服务器VIP地址设置为192.168.4.15,由keepalived服务进行优先级的选举分配(VIP)
  • 4)真实Web服务器地址分别为192.168.4.100、192.168.4.200(RIP)
  • 5)使用加权轮询调度算法(wrr)

主机分配表:

实验网络拓扑:

步骤1:配置防火墙和SELinux

[root@web1 ~]# firewall-cmd --set-default-zone=trusted
[root@web1 ~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
[root@web1 ~]# setenforce 0
[root@web2 ~]# firewall-cmd --set-default-zone=trusted
[root@web2 ~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
[root@web2 ~]# setenforce 0

步骤2:配置网络环境

1)设置后端web服务器的网络参数

[root@web1 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.100/24 connection.autoconnect yes
[root@web1 ~]# nmcli connection up eth0
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "192.168.4.100" > /var/www/html/index.html
[root@web1 ~]# systemctl restart httpd   //启动服务

[root@web2 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.200/24 connection.autoconnect yes
[root@web2 ~]# nmcli connection up eth0
[root@web2 ~]# yum -y install httpd
[root@web2 ~]# echo "192.168.4.200" > /var/www/html/index.html
[root@web2 ~]# systemctl restart httpd   //启动服务

2)配置proxy主机的网络参数

[root@proxy ~]# nmcli connection modify eth0 ipv4.method manual ipv4.address 192.168.4.5/24 connection.autoconnect yes
[root@proxy ~]# nmcli connection up eth0

[root@proxy2 ~]# nmcli connection modify eth0 ipv4.method manual ipv4.address 192.168.4.6/24 connection.autoconnect yes
[root@proxy2 ~]# nmcli connection up eth0

步骤3:部署LVS-DR调度模式

1)配置后端服务器的VIP地址(web1操作)

[root@web1 ~]# cd /etc/sysconfig/network-scripts/
[root@web1 ~]# cp ifcfg-lo ifcfg-lo:0
[root@web1 ~]# vim ifcfg-lo:0
DEVICE=lo:0                 //设备名称
IPADDR=192.168.4.15         //IP地址
NETMASK=255.255.255.255     //子网掩码
NETWORK=192.168.4.15        //网络地址
BROADCAST=192.168.4.15      //广播地址
ONBOOT=yes    //开机是否激活该网卡
NAME=lo:0    //网卡名称

2)修改内核配置说明文件(不回应广播,不向外宣告,防止进出站IP冲突)

[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
[root@web1 ~]# sysctl -p       //刷新配置文件,立刻生效

3)重启服务

[root@web1 ~]# systemctl restart network  //重启网络服务
[root@web1 ~]# ip add show

4)配置后端服务器的VIP地址(web2操作)

[root@web2 ~]# cd /etc/sysconfig/network-scripts/
[root@web2 ~]# cp ifcfg-lo ifcfg-lo:0
[root@web2 ~]# vim ifcfg-lo:0
DEVICE=lo:0   //设备名称
IPADDR=192.168.4.15   //IP地址
NETMASK=255.255.255.255    //子网掩码
NETWORK=192.168.4.15   //网络地址
BROADCAST=192.168.4.15    //广播地址
ONBOOT=yes    //开机是否激活该网卡
NAME=lo:0    //网卡名称

5)修改内核配置说明文件(不回应广播,不向外宣告,防止进出站IP冲突)

[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
[root@web2 ~]# sysctl -p      //刷新配置文件,立刻生效

6)重启服务

[root@web2 ~]# systemctl restart network  //重启网络服务
[root@web2 ~]# ip add show

步骤4:部署Keepalived与ipvsadm软件,实现LVS-DR模式调度器的高可用

  • 通过keepalived服务,从2台LVS调度器选举MASTER并分配VIP地址
  • 通过keepalived配置文件,可对LVS进行相关配置(Keepalived起初就是为LVS设计)
  • 通过keepalived服务,可监控后端服务器服务,并做健康检查,

1)关闭服务(把案例1中web1、web2的keepalived服务关闭)

[root@web1 ~]# systemctl stop keepalived
[root@web2 ~]# systemctl stop keepalived

2)两台LVS调度器安装软件

[root@proxy ~]# yum install -y keepalived
[root@proxy ~]# systemctl enable keepalived
[root@proxy ~]# yum install -y ipvsadm
[root@proxy ~]# ipvsadm -C

[root@proxy2 ~]# yum install -y keepalived
[root@proxy2 ~]# systemctl enable keepalived
[root@proxy2 ~]# yum install -y ipvsadm
[root@proxy2 ~]# ipvsadm -C

3)LVS1调度器设置Keepalived并启动服务(proxy操作)

[root@proxy ~]# vim /etc/keepalived/keepalived.conf
global_defs {     //全局配置
...
    router_id  lvs1        //设置路由ID号
    vrrp_iptables          //清除防火墙的拦截规则(实验需要修改,手动添加)   
...
}
vrrp_instance VI_1 {    //VRRP示例配置
    state MASTER    //主服务器为MASTER
    interface eth0    //定义网络接口
    virtual_router_id 51   //配置VRID(主辅VRID号必须一致)
    priority 100      //服务器优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {      //配置分配的VIP
        192.168.4.15/24
    }
}
 
virtual_server 192.168.4.15 80 {    //设置LVS虚拟服务器集群规则(VIP)
    delay_loop 6            //默认健康检查延迟6秒
    lb_algo rr             //设置LVS调度算法为rr(轮询)
    lb_kind DR           //设置LVS的模式为DR
    #persistence_timeout 50  //无语法错误,但实验需删除,开启后客户端在一定时间内(50秒)始终访问相同服务器(无法实现轮询效果)
    protocol TCP     //集群基于TCP协议
 
    real_server 192.168.4.100 80 {    //设置LVS后端服务器规则(RIP)
        weight 1     //设置权重为1
        TCP_CHECK {        //设置对后端real_server做健康检查
            connect_timeout 3      //健康检查的超时时间3秒
            nb_get_retry 3    //健康检查的重试次数3次
            delay_before_retry 3    //健康检查的间隔时间3秒
        }
    }
    real_server 192.168.4.200 80 {     //设置LVS后端服务器规则(RIP)
        weight 1    //设置权重为1
        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 Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.4.15:80 rr
  -> 192.168.4.100:80             Route   1      0          0         
  -> 192.168.4.200:80             Route   1      0          0    

4)LVS2调度器设置Keepalived并启动服务(proxy2操作)

[root@proxy2 ~]# vim /etc/keepalived/keepalived.conf
global_defs {     //全局配置
...
   router_id lvs2     //设置路由ID号
   vrrp_iptables     //清除防火墙的拦截规则(实验需要修改,手动添加)
...
}
vrrp_instance VI_1 {     //VRRP示例配置
    state BACKUP       //备服务器为BACKUP
    interface eth0      //定义网络接口
    virtual_router_id 51   //配置VRID
    priority 95          //服务器优先级
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {      //配置分配的VIP
        192.168.4.15/24
    }
}
 
virtual_server 192.168.4.15 80 {   //设置LVS虚拟服务器集群规则(VIP)
    delay_loop 6
    lb_algo rr         //设置LVS调度算法为rr(轮询)
    lb_kind DR        //设置LVS的模式为DR
    protocol TCP      //集群基于TCP协议
 
    real_server 192.168.4.100 80 {    //设置LVS后端服务器规则(RIP)
        weight 1
        TCP_CHECK {        //设置对后端real_server做健康检查
            connect_timeout 3      //健康检查的超时时间3秒
            nb_get_retry 3    //健康检查的重试次数3次
            delay_before_retry 3    //健康检查的间隔时间3秒
        }
    }
    real_server 192.168.4.200 80 {   //设置LVS后端服务器规则(RIP)
        weight 1
        TCP_CHECK {        //设置对后端real_server做健康检查
            connect_timeout 3      //健康检查的超时时间3秒
            nb_get_retry 3    //健康检查的重试次数3次
            delay_before_retry 3    //健康检查的间隔时间3秒
        }
}
}
[root@proxy2 ~]# systemctl start keepalived.service
[root@proxy2 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.4.15:80 rr
  -> 192.168.4.100:80             Route   1      0          0         
  -> 192.168.4.200:80             Route   1      0          0   

5)客户端验证

① Porxy查看IP(因优先级高,选举为MASTER,获得VIP192.168.4.15)

[root@proxy ~]# ip add show eth0

② Porxy2查看IP

[root@proxy2 ~]# ip add show eth0

客户端使用curl命令反复连接http://192.168.4.15,查看访问的页面是否会轮询到不同的后端真实服务器

[root@client ~]# curl 192.168.4.15
192.168.4.100
[root@client ~]# curl 192.168.4.15
192.168.4.200
[root@client ~]# curl 192.168.4.15
192.168.4.100
[root@client ~]# curl 192.168.4.15
192.168.4.200

补充:keepalived+LVS可实现健康检查功能;

原始的keepalived默认不带健康检查功能,在keepalived配置文件的LVS配置中添加以下TCP_CHECK记录,可实现健康检查功能;

假设当后端服务器web1的httpd服务为失败状态,keepalived+LVS进行健康检查,并在LVS调度器的规则中将问题后端服务器剔除(健康检查根据重试次数、间隔描述对服务保持检查服务,待后端服务器的服务恢复后,即可重新自动添加规则)

测试访问192.168.4.15

二、HAProxy概述

HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理(HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上)

HAProxy的一般架构:

HAProxy的监控页面示例:

相关字段解释说明:

衡量负责均衡器性能的因素:

  • 1.Session rate 会话率(每秒钟产生的会话数)
  • 2.Session concurrency 并发会话数(服务器处理会话的时间越长,并发会话数越多)
  • 3.Date rate 数据速率(以MB/s或Mbps衡量)

HAProxy工作模式:http、tcp、health

  • 1.mode http  7层代理,客户端请求被深度分析后再发往服务器;
  • 2.mode tcp   4层代理,不检查第7层信息
  • 3.mode health  仅做健康状态检查,不做代理(不建议使用)

1)HAProxy基础

  • 软件包:haproxy
  • 主配置文件:/etc/haproxy/haproxy.cfg

2)管理服务

  • 启动服务:systemctl start haproxy
  • 停止服务:systemctl stop haproxy
  • 查看状态:systemctl status haproxy

3)haproxy的配置文件由两部分组成:全局设定和对代理的设定,共分为五段:global,defaults,frontend,backend,listen;

① 全局配置段“global”用于设定全局配置参数,列举部分参数:

② proxy代理相关配置段:“defaults”、“listen”、“frontend”和“backend”


案例:配置HAProxy负载平衡集群

案例要求:

  • 1)客户端访问HAProxy,HAProxy分发请求到后端Real Server
  • 2)开启HAProxy监控页面,及时查看调度器状态
  • 3)设置HAProxy为开机启动服务

主机地址分配:

实验网络拓扑:

步骤1:网络环境准备

1)配置Web服务器网络环境(web1、web2操作)

[root@web1 ~]# nmcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.2.100/24 connection.autoconnect yes
[root@web1 ~]# nmcli connection up eth1
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "192.168.2.100" > /var/www/html/index.html
[root@web1 ~]# systemctl start httpd

[root@web2 ~]# nmcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.2.200/24 connection.autoconnect yes
[root@web2 ~]# nmcli connection up eth1
[root@web2 ~]# yum -y install httpd
[root@web2 ~]# echo "192.168.2.200" > /var/www/html/index.html
[root@web2 ~]# systemctl start httpd

2)配置proxy服务器网络环境(proxy操作)(注意:配置2张网卡)

[root@proxy ~]# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.5/24 connection.autoconnect yes
[root@proxy ~]# nmcli connection up eth0

[root@proxy ~]# nmcli connection modify eth1 ipv4.method manual ipv4.addresses 192.168.2.5/24 connection.autoconnect yes
[root@proxy ~]# nmcli connection up eth1

步骤2:部署HAProxy服务器

1)安装HAProyx软件包

[root@proxy ~]# yum -y install haproxy
[root@proxy ~]# id haproxy
uid=188(haproxy) gid=188(haproxy) 组=188(haproxy)

2)修改配置文件

[root@proxy ~]# vim /etc/haproxy/haproxy.cfg
global       //全局配置(默认即可,不用修改)
    log 127.0.0.1 local2     //错误日志([err warning info debug])
    pidfile  /var/run/haproxy.pid    //haproxy的pid存放路径
    user  haproxy
    group  haproxy
    daemon                 //让haproxy以守护进程的方式工作于后台
defaults     //defaults段为所有其它配置段提供默认参数
    mode http       //默认的模式mode { tcp|http|health }            
    option  dontlognull      //不记录健康检查的日志信息
    option  httpclose        //每次请求完毕后主动关闭http通道
    option  httplog          //日志类别http日志格式
    option  redispatch       //当某个服务器挂掉后强制定向到其他健康服务器
    timeout  client 300000   //客户端连接超时,默认毫秒,也可以加时间单位
    timeout  server 300000   //服务器连接超时
    maxconn  3000          //最大连接数
    retries  3           //3次连接失败就认为服务不可用,也可以通过后面设置
...
listen  websrv 0.0.0.0:80     //listen端定义集群(集群名任意)
    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
listen stats *:1080        //监听端口(1080端口可任意)
    stats refresh 30s           //统计状态页面数据自动刷新时间
    stats uri /status              // 统计页面url(status为网页状态页面)
    stats realm Haproxy Manager    //进入的是HAProxy管理界面查看状态信息
    stats auth admin:admin          //统计页面用户名和密码设置

解释说明:

3)启动服务器并设置开机启动(Haproxy服务占用80端口)

[root@proxy ~]# systemctl restart haproxy.service
[root@proxy ~]# systemctl enable haproxy.service
[root@proxy ~]# ss -anptul | grep :80     //Haproxy服务占用80端口
tcp    LISTEN     0      128       *:80                    *:*                   users:(("haproxy",pid=1153,fd=7))

步骤3:客户端验证

① 使用浏览器访问http://192.168.4.5,测试Haproxy代理是否正常工作及轮询效果

[root@client ~]# curl 192.168.4.5
192.168.2.100
[root@client ~]# curl 192.168.4.5
192.168.2.200
[root@client ~]# curl 192.168.4.5
192.168.2.100
[root@client ~]# curl 192.168.4.5
192.168.2.200

② 尝试将web1服务器的httpd服务设置为stop状态,查看健康检查效果;

[root@client ~]# curl 192.168.4.5
192.168.2.200
[root@client ~]# curl 192.168.4.5
192.168.2.200

③ 客户端访问http://192.168.4.5:1080/status测试状态监控页面是否正常。访问状态监控页的内容;账号密码为:admin admin

状态监控页面如图所示:

模拟压力测试:

[root@client ~]# yum -y install httpd-tools
[root@client ~]# ab -c 100 -n 100 http://192.168.4.5/
...
Percentage of the requests served within a certain time (ms)
  50%     17
  66%     17
  75%     17
  80%     17
  90%     17
  95%     17
  98%     17
  99%     17
 100%     17 (longest request)

解释说明:

常见报错:没有可用于处理此请求的服务器

[root@client ~]# curl 192.168.4.5
<html><body><h1>503 Service Unavailable</h1>
No server is available to handle this request.
</body></html>

思路分析:

  • 1.服务器与调度器之间的网络不通,调度器无法到后端服务器获取数据;
  • 2.web服务器的httpd服务未开启;
  • 3.Haproxy的配置文件中,定义集群的后端服务器地址有问题;

常见报错:没有到主机的路由

[root@client ~]# curl 192.168.4.5
curl: (7) Failed connect to 192.168.4.5:80; 没有到主机的路由

思路分析:排查客户端与服务器之间的网络通信

常见报错:在同一个服务器上安装并启动了httpd或nginx服务,导致80端口被占用

思路分析:排查是否80端口被占用

三、集群调度软件对比

1)Nginx分析

2)LVS分析

3)HAProxy分析

思维导图:

小结:

本篇章节为【第二阶段】CLUSTER-DAY2 的学习笔记,这篇笔记可以初步了解到 Keepalived基础、Keepalived+LVS 实现高可用和负载均衡、HAproxy、集群调度软件对比。除此之外推荐参考相关学习网址:

  • Keepalived + Nginx 实现高可用 Web 负载均衡_nginx应用高可用-CSDN博客
  • https://www.cnblogs.com/losbyday/p/5841830.html
  • http://www.ttlsa.com/linux/haproxy-study-tutorial/

Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解

举报

相关推荐

0 条评论