keepalived双主以及nginx+keepalived实现高可用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,一、keepalive实现双主:1.1实验准备2台主机地址分别为:172.20.10.9,172.20.10.10,vip1为172.20.10.10,vip2为172.20.10.111.2通知脚本
千家信息网最后更新 2026年11月02日keepalived双主以及nginx+keepalived实现高可用
一、keepalive实现双主:
1.1实验准备
2台主机地址分别为:172.20.10.9,172.20.10.10,
vip1为172.20.10.10,vip2为172.20.10.11
1.2通知脚本:
[root@node5 /]# vim /etc/keepalived/notify.sh #!/bin/bashcontact='root@localhost'notify() { local mailsubject="$(hostname) to be $1, vip floating" local mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1" echo "$mailbody" | mail -s "$mailsubject" $contact}case $1 inmaster) notify master ;;backup) notify backup ;; fault) notify fault ;; *) echo "Usage: $(basename $0) {master|backup|fault}" exit 1 ;;esac1.3配置node5为vip1地址的主节点,vip2地址的备节点
[root@node5 ~]# vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node5 vrrp_mcast_group4 224.0.100.19}vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.20.10.10/28 dev ens33 label ens33:0 } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault"}vrrp_instance VI_2 { state BACKUP interface ens33 virtual_router_id 52 priority 98 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.20.10.11/28 dev ens33 label ens33:1 } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault"}1.4配置node6为vip1地址的备节点,vip2地址的主节点
[root@node6 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs { notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node5 vrrp_mcast_group4 224.0.100.19}vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 51 priority 98 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.20.10.10/28 dev ens33 label ens33:0 } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault"}vrrp_instance VI_2 { state MASTER interface ens33 virtual_router_id 52 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.20.10.11/28 dev ens33 label ens33:1 } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault"}1.5验证:
(1)先开启node6节点的keepalived服务,查看IP地址,状态:
2个VIP地址都在node6节点上:
(2)再开启node5节点keepalived服务,查看IP地址和状态:
VIP1地址已经飘到了node5节点上了
二,Nginx+Keepalived实现站点高可用
2.1实验准备:
2台主机:node5地址为172.20.10.9,node6的节点为172.20.10.8
vip地址为172.20.10.10
2.2nginx配置
(1)node5节点
[root@node5 ~]# yum install nginx -y[root@node5 /]# vim /usr/share/nginx/html/index.html node5 web page[root@node5 ~]# systemctl start nginx(2)node6节点
[root@node6 /]# yum install -y nginx[root@node6 /]# vim /usr/share/nginx/html/index.html node6 web page[root@node6 ~]# systemctl start nginx2.3配置node5为vip的主节点,配置检查nginx的监控脚本:
[root@node5 /]# vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node5 vrrp_mcast_group4 224.0.100.19}vrrp_script chk_nginx { script "/usr/bin/killall -0 nginx && exit 0 || exit 1 " interval 1 weight -5 fall 2 rise 1}vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.20.10.10/28 dev ens33 label ens33:0 } track_script { chk_nginx } track_interface { ens33 } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault"}[root@node5 keepalived]# systemctl start keepalived2.4配置node6为vip的备节点,配置检查nginx的监控脚本:
[root@node6 /]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalivedglobal_defs { notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node5 vrrp_mcast_group4 224.0.100.19}vrrp_script chk_nginx { script "/usr/bin/killall -0 nginx && exit 0 || exit 1 " interval 1 weight -5 fall 2 rise 1}vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 51 priority 98 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.20.10.10/28 dev ens33 label ens33:0 } track_script { chk_nginx } track_interface { ens33 } notify_master "/etc/keepalived/notify.sh master" notify_backup "/etc/keepalived/notify.sh backup" notify_fault "/etc/keepalived/notify.sh fault"}[root@node6 html]# systemctl start keepalived3.验证:
3.1当服务都正常时,vip地址在node5节点上,测试访问172.20.10.10的情况:
3.2当down掉node5节点上nginx服务时,观察vip地址和其访问情况:
vip地址飘到node6节点上,curl172.20.10.10,则访问的时node6节点
3.3当恢复node5节点上nginx服务时,vip地址飘到node5节点上,访问172.20.10.10则是node5上nginx
节点
地址
配置
服务
脚本
主机
情况
状态
准备
实验
检查
监控
验证
站点
别为
测试
观察
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网黑科技
易通互联网络科技有限公司
广州凡科互联网科技
华脉科技工业互联网产品
哈尔滨新华互联网科技学院
字节跳动和互联网科技
上海宁丞科技互联网
中国航天科技大学国际工业互联网
湖南一路畅行互联网科技
晓花互联网科技有限公司网址
坤平互联网科技
佛山市翊博互联网络科技有限公司
爱医互联网络科技
朱啸虎曾投资哪些互联网科技企业
互联网科技如何创业
中科明德北京互联网科技
本届互联网大会上的黑科技
南京一网一红互联网科技有限公司
亚光科技低轨卫星互联网
高科技和互联网的现代国家
互联网与科技
百单互联网科技有限公司
博兴的互联网电子科技公司
中盈科技互联网信息有限公司
南平创想时代互联网科技有限公司
坤平互联网科技
乌鲁木齐新华智原互联网科技学校
互联网企业科技类企业如何做账
信承诺互联网科技有限公司
互联网时代高科技布局