keepalived双主以及nginx+keepalived实现高可用
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,一、keepalive实现双主:1.1实验准备2台主机地址分别为:172.20.10.9,172.20.10.10,vip1为172.20.10.10,vip2为172.20.10.111.2通知脚本
千家信息网最后更新 2025年12月03日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安全错误
数据库的锁怎样保障安全
飚客网络技术上海有限公司
网络安全共建项目
网络安全岗位培训包括什么
进口车车型查询数据库
软件开发助理php
如何登录即时通讯服务器
cfes网络技术
软件开发师证书在哪里领
一般买多大服务器
大众关服务器
python 医疗软件开发
如何将请求聚合然后查数据库
上海飞宇网络技术有限公司
汽车行业软件开发标准
江西软件开发定制价格
网络安全检测装置横向隔离
攀枝花软件开发方案
生信怎么选择数据库
义乌app软件开发总结
定西租房软件开发
软件开发方面的认证考试项目
社区未成年网络安全宣传
软件开发java搜题软件
上海云控软件开发商
数据库后台实现图
电脑无法定位到服务器
软件开发合同有效期规定
《网络安全法》出台的定位是
网络安全精细化管理目的
查一个数据库表的第100行