Nginx 入门(九) Nginx 配置实例- Keepalived+Nginx 高可用集群(主从模式)(基础基础基础 初步尝试)
1 Keepalived+Nginx 高可用集群(主从模式)
2 准备2台服务器 分别装上 nginx 和Keepalived
一 丶安装nginx
https://www.cnblogs.com/mangoubiubiu/p/14497061.html
二丶使用 yum 命令安装Keepalived
yum install keepalived –y
三丶查看Keepalived 是否安装成功
rpm -q -a keepalived
3 Keepalived 配置文件修改
一 丶主服务(192.168.117.129)器配置:
/etc/keepalived/keepalived.conf
global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.117.129 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script check_nginx { script "/usr/local/src/nginx_check.sh" interval 3 #(检测脚本执行的间隔) weight 2 } vrrp_instance VI_1 { state MASTER # 备份服务器上将 MASTER 改为 BACKUP interface ens33 //网卡 virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同 priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { check_nginx } virtual_ipaddress { 192.168.117.50 // VRRP H 虚拟地址 } }
/usr/local/src/nginx_check.sh
#!/bin/bash A=`ps -C nginx ¨Cno-header |wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx sleep 2 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fi
二 丶从服务(192.168.117.134)器配置:
/etc/keepalived/keepalived.conf
global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.117.129 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script check_nginx { script "/usr/local/src/nginx_check.sh" interval 3 #(检测脚本执行的间隔) weight 2 } vrrp_instance VI_1 { state MASTER # 备份服务器上将 MASTER 改为 BACKUP interface ens33 //网卡 virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同 priority 90# 主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 1 authentication { auth_type PASS auth_pass 1111 } track_script { check_nginx } virtual_ipaddress { 192.168.117.50 // VRRP H 虚拟地址 } }
/usr/local/src/nginx_check.sh 和上面的(主服务器)一致
注意点 虚拟ip 不能乱写 如果 主服务器的 ip 是 192.168.117.129 虚拟ip 前三段一定要相同
正例 192.168.117.50
反例子 192.168.17.50
4 开启服务(主 从服务器 操作一致)
一 启动 keepalived:
systemctl start keepalived.service
二 启动 nginx:
./nginx
5 测试
一 丶 2台服务器 keepalived,nginx都已启动 效果
访问主服务器(192.168.117.129)
访问从服务器(192.168.117.134)
访问虚拟ip(192.168.117.50)
二 丶 停掉主服务器 nginx
发现 keeplived 会被立即kill掉 说明执行了 脚本
三 丶 注意点 如果发现 脚本未执行
先授权
chmod 755 nginx_check.sh
手动 ./nginx_check.sh
如果 报
-bash: ./nginx_check.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录
执行
sed -i 's/\r$//' nginx_check.sh
查看 keepalived 日志
tail -f /var/log/messages
如果 报
/usr/local/src/nginx_check.sh exited due to signal 15
本文作者:KwFruit
本文链接:https://www.cnblogs.com/mangoubiubiu/p/14508579.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
Nginx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)