当前位置: 首页> 汽车> 报价 > keepalived保活nginx1,nginx2

keepalived保活nginx1,nginx2

时间:2025/7/11 14:34:46来源:https://blog.csdn.net/m0_74744788/article/details/141368410 浏览次数: 0次

1    下载两个小玩意

  yum -y install keepalived

   yum install psmisc  -y

  

2    配置nginx1,2自启脚本

vim /root/shell/check-nginx.sh          我的脚本放在root/shell里

#!/bin/bash
#获取nginx正在运行的进程数
npsnum=`ps -C nginx --no-header | wc -l`if [ $npsnum == 0 ]; then#等0说明nginx没启动/usr/local/nginx/sbin/nginx#再次判断nginx是否活着if [ `ps -C nginx --no-header | wc -l` == 0 ]; then#等0说明nginx启动失败killall  keepalivedfifi

 chmod +x  /root/shell/check-nginx.sh      

3    测试脚本是否能用

ll   /root/shell/check-nginx.sh 

ps -ef |grep nginx |grep -v grep    (有的话杀死)

kill -9 1304    kill -9  1306           (我的有我杀)

 ps -ef |grep nginx |grep -v grep  再次查看

./check-nginx.sh   启动  (进脚本目录可以这样,没进去全路径)

ps -ef |grep nginx |grep -v grep     再次查看

4    nginx-1keepalived配置 

vim /etc/keepalived/keepalived.conf      如果错了cat /var/log/messages可以看

   ! Configuration File for keepalivedglobal_defs {#唤醒邮箱配置notification_email {acassen@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1#配置邮件服务器连接超时时间smtp_connect_timeout 30#路由id,唯一的,当前机子router_id LVS_27
}
#vrrp脚本   名字与下面track_script里面的名字一致
vrrp_script aaa {script "/root/shell/check-nginx.sh"#调用脚本间隔时间 秒 不配默认1秒interval 2weight -1
}
vrrp_instance VI_1 {#服务器状态state MASTER#当前实例绑定的网卡接口interface ens33 #虚拟路由id,主备必须相同,相同为一组virtual_router_id 51 #优先级取值1-255,master一般比backup高50priority 100#主备心跳间隔时间 单位是秒advert_int 1 #认证  主备切换时,进行认证  主备必须相同authentication { auth_type PASSauth_pass 1111}   #虚拟ip配置 LVS=IPVS   keepavlied虚拟出的ipvirtual_ipaddress {#虚拟IP 必须和要和保活的软件所在的主机的IP的网段一致192.168.58.188 }   #追踪脚本track_script {aaa
}     
}

service keepalived start   启动

5    nginx-2 keepalived配置 

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalivedglobal_defs {#唤醒邮箱配置notification_email {acassen@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1#配置邮件服务器连接超时时间smtp_connect_timeout 30#路由id,唯一的,当前机子router_id LVS_28
}
#vrrp脚本 名字与下面track_script里面的名字一致,脚本路径
vrrp_script aaa {script "/root/shell/check-nginx.sh"#调用脚本间隔时间 秒 不配默认1秒interval 2weight 1
}#服务器状态state BACKUP#当前实例绑定的网卡接口interface ens33 #虚拟路由id,主备必须相同,相同为一组virtual_router_id 51 #优先级取值1-255,master一般比backup高50priority 50#主备心跳间隔时间 单位是秒advert_int 1 #认证  主备切换时,进行认证  主备必须相同authentication { auth_type PASSauth_pass 1111}   #虚拟ip配置 LVS=IPVS   keepavlied虚拟出的ipvirtual_ipaddress {#虚拟IP 必须和要和保活的软件所在的主机的IP的网段
一致     192.168.58.188}   #追踪脚本track_script {aaa
}     
} 

service keepalived start   启动

6    配置后

黑窗口     arp -a 192.168.58.188    查看虚拟ip在nginx-1机子上   00-0c-29-d4-55-dc 

                ping  -t 192.168.58.188      可以一直ping

nginx-1         killall keepalived      黑窗口会出现连接超时,然后 继续ping

     结束这次ping

      再次  黑窗口     arp -a 192.168.58.188    查看虚拟ip在nginx-2机子上  00-0c-29-e9-a0-36

       再次        ping  -t 192.168.58.188      

      service   keepalived  start    启动   再次出现 

结束这次ping

  黑窗口     arp -a 192.168.58.188    查看虚拟ip在nginx-1机子上   00-0c-29-d4-55-dc 

7   keepalived   作用  目的

高可用  和   负载均衡

Keepalived的作用是检测服务器(目前保活的是nginx,可以保活其他软件)的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

      Keepalived 是一个用 C 语言编写的路由软件。这个项目的主要目标是为 Linux 系统和基于 Linux 的基础设施提供简单而强大的负载平衡和高可用性设施 。底层基于VRRP( Virtual Router Redundancy Protocol,简称VRRP)协议编写。VRRP作用:它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱。

关键字:keepalived保活nginx1,nginx2

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: