当前位置: 首页 > news >正文

keepalived部署

keepalived部署

master:192.168.100.10
slave: 192.168.100.40
直接将nginx作为后端web站点

在这里插入图片描述

一、Master主节点和slave备份节点:

1、关闭防火墙和selinux(略)
2、配置网络源–阿里源centos7和epel源
[root@stw ~]# cd /etc/yum.repos.d/
[root@stw yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@stw yum.repos.d]# rm -rf *
[root@stw yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@stw yum.repos.d]# yum -y install epel-release
[root@stw ~]# cd /etc/yum.repos.d/
[root@stw yum.repos.d]# ls
CentOS-Base.repo  epel.repo  epel-testing.repo
3、安装一下常用命令
yum -y install vim wget gcc gcc-c++
4、安装keepalived和nginx
[root@stw ~]# yum -y install nginx keepalived
[root@stw ~]# systemctl restart nginx.service 
[root@stw ~]# systemctl enable nginx.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@stw ~]# ss -anlt
State      Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN     0      128          *:111                      *:*                  
LISTEN     0      128          *:80                       *:*                  
LISTEN     0      128          *:6000                     *:*                  
LISTEN     0      5      192.168.122.1:53                       *:*                  
LISTEN     0      128          *:22                       *:*                  
LISTEN     0      128    127.0.0.1:631                      *:*                  
LISTEN     0      100    127.0.0.1:25                       *:*                  
LISTEN     0      128    127.0.0.1:6010                     *:*                  
LISTEN     0      128         :::111                     :::*                  
LISTEN     0      128         :::80                      :::*                  
LISTEN     0      128         :::6000                    :::*                  
LISTEN     0      128         :::22                      :::*                  
LISTEN     0      128        ::1:631                     :::*                  
LISTEN     0      100        ::1:25                      :::*                  
LISTEN     0      128        ::1:6010                    :::*     
5、在nginx中添加测试网页
[root@stw ~]# cd /usr/share/nginx/html
[root@stw html]# ls
404.html  en-US  img         nginx-logo.png
50x.html  icons  index.html  poweredby.png
[root@stw html]# echo "master node" > index.html[root@stw4 ~]# cd /usr/share/nginx/html/
[root@stw4 html]# echo "slave node" > index.html

在这里插入图片描述

在这里插入图片描述

二、配置主keepalived

1、先将主机名称更改(10网段为master,40网段为slave)
[root@stw ~]# hostnamectl set-hostname master.example.com
[root@stw ~]# bash
[root@master ~]# [root@stw4 html]# echo "slave node" > index.html
[root@stw4 html]# hostnamectl set-hostname slave.example.com
[root@stw4 html]# bash
[root@slave html]# 
2、更改配置文件之前先备份
[root@master ~]# cd /etc/keepalived/
[root@master keepalived]# ls
keepalived.conf
[root@master keepalived]# cp keepalived.conf keepalived.conf.bak
[root@master keepalived]# ls
keepalived.conf  keepalived.conf.bak
3、更改配置文件
[root@master keepalived]# vim keepalived.conf
[root@master keepalived]# systemctl restart keepalived.service 
[root@master keepalived]# systemctl enable keepalived.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.
! Configuration File for keepalivedglobal_defs {router_id stw01
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.100.150}
}virtual_server 192.168.100.150 80 {delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 50protocol TCPreal_server 192.168.100.10 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.100.40 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}

三、在slave节点配置备份keepalived

[root@slave ~]# cd /etc/keepalived/
[root@slave keepalived]# ls
keepalived.conf
[root@slave keepalived]# cp keepalived.conf keepalived.conf.bak
[root@slave keepalived]# scp root@192.168.100.10:/etc/keepalived/keepalived.conf .
The authenticity of host '192.168.100.10 (192.168.100.10)' can't be established.
ECDSA key fingerprint is SHA256:R7/1dpul7cu8SnefsN2wQw5hKDL+xekk0ffasLS6OGI.
ECDSA key fingerprint is MD5:81:88:a1:16:52:83:c0:d5:59:ad:2b:3a:d5:52:02:bc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.10' (ECDSA) to the list of known hosts.
root@192.168.100.10's password: 
keepalived.conf                                         100%  846   616.4KB/s   00:00    
[root@slave keepalived]# ls
keepalived.conf  keepalived.conf.bak
[root@slave keepalived]# vim keepalived.conf
[root@slave keepalived]# systemctl restart keepalived.service 
[root@slave keepalived]# systemctl enable keepalived.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/keepalived.service to /usr/lib/systemd/system/keepalived.service.
! Configuration File for keepalivedglobal_defs {router_id stw02
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.100.150}
}virtual_server 192.168.100.150 80 {delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 50protocol TCPreal_server 192.168.100.10 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.100.40 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}

四、查看IP(此时主keepalived工作)

主keepalived中能查看到虚拟IP
[root@master keepalived]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:b9:a3:2a brd ff:ff:ff:ff:ff:ffinet 192.168.100.10/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.100.150/32 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::3233:2f91:158e:95c2/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ff
slave节点中查看不到
[root@slave keepalived]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:85:55:d3 brd ff:ff:ff:ff:ff:ffinet 192.168.100.40/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::9510:d8d7:5d52:d7b3/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft foreverinet6 fe80::2850:4f7d:bcdd:ccb3/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft foreverinet6 fe80::a087:fe31:95a7:535/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ff

五、修改内核参数,开启侦听VIP功能(此步可做可不做,该功能可用于仅监听VIP)

[root@master ~]# vim /etc/sysctl.conf
[root@master ~]# sysctl -p
net.ipv4.ip_nonlocal_bind = 1[root@slave ~]# vim /etc/sysctl.conf 
[root@slave ~]# sysctl -p
net.ipv4.ip_nonlocal_bind = 1
此时客户端去访问192,。168.100.150时,访问不到网页,因为master和slave中的nginx都处于开启阶段,客户端不知道找谁

在这里插入图片描述

将slave中的nginx停掉(systemctl stop nginx)

在这里插入图片描述

六、让keepalived监控nginx负载均衡(master节点损坏时,自动切换slave节点)

手动修改时:

master:

[root@master ~]# systemctl stop nginx
[root@master ~]# systemctl stop keepalived.service

slave:

[root@slave ~]# systemctl restart nginx
[root@slave ~]# systemctl restart keepalived.service

1、在master上编写脚本
[root@master ~]# mkdir /scripts
[root@master ~]# cd /scripts/
[root@master scripts]# vim check.sh
[root@master scripts]# chmod +x check.sh 
[root@master scripts]# vim notify.sh
[root@master scripts]# chmod +x notify.sh 
check.sh:
#!/bin/bash
nginx_status=`ps -ef | grep -v "grep" | grep "nginx" | wc -l`
if [ $nginx_status -lt 1 ];thensystemctl stop keepalived
fi
notify.sh:

当服务器切换为 master 状态时,确保 nginx 运行并发送邮件通知
当服务器切换为 backup 状态时,确保 nginx 停止运行

#!/bin/bash
VIP=$2
sendmail () {subject="${VIP}'s server keepalived state is translate"content="`date +'%F %T'`: `hostname`'s state change to master"echo $content | mail -s "$subject" 3256094218@qq.com
}
case "$1" inmaster)nginx_status=$(ps -ef|grep -Ev "grep|$0"|grep '\bnginx\b'|wc -l)if [ $nginx_status -lt 1 ];thensystemctl start nginxfisendmail;;backup)nginx_status=$(ps -ef|grep -Ev "grep|$0"|grep '\bnginx\b'|wc -l)if [ $nginx_status -gt 0 ];thensystemctl stop nginxfi;;*)echo "Usage:$0 master|backup VIP";;
esac
2、在slave上编写脚本
[root@slave keepalived]# mkdir /scripts
[root@slave keepalived]# cd /scripts/
[root@slave scripts]# scp root@192.168.100.10:/scripts/check.sh .
root@192.168.100.10's password: 
check.sh                                                100%  143    51.4KB/s   00:00    
[root@slave scripts]# scp root@192.168.100.10:/scripts/notify.sh .
root@192.168.100.10's password: 
notify.sh                                               100%  590   399.4KB/s   00:00    
[root@slave scripts]# ls
check.sh  notify.sh
[root@slave scripts]# chmod +x check.sh
[root@slave scripts]# chmod +x notify.sh 
3、配置master的keepalived
[root@master scripts]# vim /etc/keepalived/keepalived.conf
[root@master scripts]# systemctl restart keepalived.service 
! Configuration File for keepalivedglobal_defs {router_id stw01
}vrrp_script nginx_check {script "/scripts/check.sh"interval 10weight -20
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.100.150}track_script {nginx_check}notify_master "/scripts/notify.sh master 192.168.100.150"notify_backup "/scripts/notify.sh backup 192.168.100.150"
}virtual_server 192.168.100.150 80 {delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 50protocol TCPreal_server 192.168.100.10 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.100.40 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}
4、配置slave的keepalived
[root@slave scripts]# vim /etc/keepalived/keepalived.conf
[root@slave scripts]# systemctl restart keepalived.service 
! Configuration File for keepalivedglobal_defs {router_id stw02
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.100.150}notify_master "/scripts/notify.sh master 192.168.100.150"notify_backup "/scripts/notify.sh backup 192.168.100.150"
}virtual_server 192.168.100.150 80 {delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 50protocol TCPreal_server 192.168.100.10 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.100.40 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}
5、模拟故障
master:
[root@master scripts]# systemctl stop nginx
[root@master scripts]# ss -anlt
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128         *:111                     *:*                  
LISTEN      0      128         *:6000                    *:*                  
LISTEN      0      5      192.168.122.1:53                      *:*                  
LISTEN      0      128         *:22                      *:*                  
LISTEN      0      128    127.0.0.1:631                     *:*                  
LISTEN      0      100    127.0.0.1:25                      *:*                  
LISTEN      0      128    127.0.0.1:6010                    *:*                  
LISTEN      0      128        :::111                    :::*                  
LISTEN      0      128        :::6000                   :::*                  
LISTEN      0      128        :::22                     :::*                  
LISTEN      0      128       ::1:631                    :::*                  
LISTEN      0      100       ::1:25                     :::*                  
LISTEN      0      128       ::1:6010                   :::*                  
[root@master scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:b9:a3:2a brd ff:ff:ff:ff:ff:ffinet 192.168.100.10/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::3233:2f91:158e:95c2/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ff
slave:
[root@slave scripts]# ss -anlt
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128               *:111                           *:*                  
LISTEN      0      128               *:80                            *:*                  
LISTEN      0      128               *:6000                          *:*                  
LISTEN      0      5      192.168.122.1:53                            *:*                  
LISTEN      0      128               *:22                            *:*                  
LISTEN      0      128       127.0.0.1:631                           *:*                  
LISTEN      0      100       127.0.0.1:25                            *:*                  
LISTEN      0      128       127.0.0.1:6010                          *:*                  
LISTEN      0      128              :::111                          :::*                  
LISTEN      0      128              :::80                           :::*                  
LISTEN      0      128              :::6000                         :::*                  
LISTEN      0      128              :::22                           :::*                  
LISTEN      0      128             ::1:631                          :::*                  
LISTEN      0      100             ::1:25                           :::*                  
LISTEN      0      128             ::1:6010                         :::*                  
[root@slave scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:85:55:d3 brd ff:ff:ff:ff:ff:ffinet 192.168.100.40/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.100.150/32 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::9510:d8d7:5d52:d7b3/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft foreverinet6 fe80::2850:4f7d:bcdd:ccb3/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft foreverinet6 fe80::a087:fe31:95a7:535/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ff
测试访问:

在这里插入图片描述

恢复:
slave:
[root@slave scripts]# systemctl stop nginx
[root@slave scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:85:55:d3 brd ff:ff:ff:ff:ff:ffinet 192.168.100.40/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::9510:d8d7:5d52:d7b3/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft foreverinet6 fe80::2850:4f7d:bcdd:ccb3/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft foreverinet6 fe80::a087:fe31:95a7:535/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ff
master:
[root@master scripts]# systemctl restart nginx
[root@master scripts]# systemctl restart keepalived.service
[root@master scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:b9:a3:2a brd ff:ff:ff:ff:ff:ffinet 192.168.100.10/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.100.150/32 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::3233:2f91:158e:95c2/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ff

在这里插入图片描述

将真实服务器作为后端web服务器

在这里插入图片描述

1、配置好rs1、rs2的作为后端web服务器
[root@stw2 ~]# cd /etc/yum.repos.d/
[root@stw2 yum.repos.d]# rm -rf *
[root@stw2 yum.repos.d]# vim server.repo
[root@stw2 yum.repos.d]# cat server.repo 
[aa]
name=aa1
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@stw2 yum.repos.d]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@stw2 yum.repos.d]# yum -y install httpd
[root@stw2 yum.repos.d]# echo "this is rs1" > /var/www/html/index.html
[root@stw2 yum.repos.d]# systemctl restart httpd
[root@stw2 yum.repos.d]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@slave scripts]# curl http://192.168.100.20
this is rs1
[root@slave scripts]# curl http://192.168.100.30
this is rs2
2、修改nginx服务器配置文件
master和slave都需要配置:
[root@master scripts]# vim /etc/nginx/nginx.conf
You have mail in /var/spool/mail/root
[root@master scripts]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@master scripts]# systemctl restart nginx.service 
[root@master scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:b9:a3:2a brd ff:ff:ff:ff:ff:ffinet 192.168.100.10/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.100.150/32 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::3233:2f91:158e:95c2/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ff

在这里插入图片描述

再次模拟master故障
master:
[root@master scripts]# systemctl stop nginx.service 
[root@master scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:b9:a3:2a brd ff:ff:ff:ff:ff:ffinet 192.168.100.10/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::3233:2f91:158e:95c2/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ff
slave:
[root@slave scripts]# ss -anlt
State      Recv-Q Send-Q Local Address:Port                Peer Address:Port              
LISTEN     0      128                *:111                            *:*                  
LISTEN     0      128                *:80                             *:*                  
LISTEN     0      128                *:6000                           *:*                  
LISTEN     0      5      192.168.122.1:53                             *:*                  
LISTEN     0      128                *:22                             *:*                  
LISTEN     0      128        127.0.0.1:631                            *:*                  
LISTEN     0      100        127.0.0.1:25                             *:*                  
LISTEN     0      128        127.0.0.1:6010                           *:*                  
LISTEN     0      128               :::111                           :::*                  
LISTEN     0      128               :::80                            :::*                  
LISTEN     0      128               :::6000                          :::*                  
LISTEN     0      128               :::22                            :::*                  
LISTEN     0      128              ::1:631                           :::*                  
LISTEN     0      100              ::1:25                            :::*                  
LISTEN     0      128              ::1:6010                          :::*  
[root@slave scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:85:55:d3 brd ff:ff:ff:ff:ff:ffinet 192.168.100.40/24 brd 192.168.100.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet 192.168.100.150/32 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::9510:d8d7:5d52:d7b3/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft foreverinet6 fe80::2850:4f7d:bcdd:ccb3/64 scope link tentative noprefixroute dadfailed valid_lft forever preferred_lft foreverinet6 fe80::a087:fe31:95a7:535/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:07:f1:30 brd ff:ff:ff:ff:ff:ff
测试访问:(能够正常访问到后端服务器)

对于客户端而言,我只需要访问到后端服务器就行,前面将nginx设置为web服务器是因为可以更直观地看到master节点故障之后换成slave节点工作的过程

在这里插入图片描述

在这里插入图片描述

http://www.dtcms.com/a/418164.html

相关文章:

  • 前端实现抽烟识别:从算法到可视化
  • j2ee网站开发免费教程甘肃金顶建设公司网站
  • Linux ssh/scp/sftp命令使用及免密登录配置
  • CBB21B-MPB电子元器件 RC容钏电子 高性能金属化聚丙烯薄膜直流电容器 技术解析
  • CustomKD论文阅读
  • 腾讯面试题总结(1)
  • 【服务器知识】HTTP 请求头信息及其用途详细说明
  • AbMole| ABDP 493/503( M9850;中性脂滴荧光探针)
  • QML核心概念:用户输入与布局管理
  • 在原备案号下增加新网站微信公众平台是什么
  • AI智能体实战开发教程(从0到企业级项目落地):62节全完结,助力金九银十升职加薪!
  • 【网络编程】套接字入门:网络字节序与套接字种类剖析
  • 【Linux】Linux下的静态链接的底层逻辑
  • 2、Lombok核心注解详解:@Getter、@Setter、@Data 等基础注解全面解析
  • 兴力网站建设wordpress文章类型模板
  • springboot高校教务管理系统设计与实现(代码+数据库+LW)
  • Vala 编程语言高级特性-具有语法支持的方法
  • JavaEE初阶4.0
  • 医疗编程AI技能树与培训技能树报告(国内外一流大学医疗AI相关专业分析2025版,上)
  • 【IEEE出版 | 高录用、稳定检索】第七届信息与计算机前沿技术国际学术会议(ICFTIC 2025)
  • 我爱学算法之—— 模拟(上)
  • 白云做网站网店怎么注册开网店
  • 有了域名和主机怎么做网站erp软件是什么软件
  • 大数据毕业设计选题推荐-基于大数据的青光眼数据可视化分析系统-大数据-Spark-Hadoop-Bigdata
  • 数据可视化 | 热力图Heatmap绘制Python代码 相关性矩阵学术可视化
  • C#对称加密(AES)的简单代码
  • AR眼镜在安防领域人脸识别技术方案|阿法龙XR云平台
  • 【传奇开心果系列】基于Flet实现的第三次大的升级优化版语音播报成语接龙小游戏V3.0.1特色和实现原理深度解析
  • 【Qt】输入类控件2——SpinBox,DateEdit,TimeEdit,Dial,Slider
  • activemq延迟消息变成实时收到了?