Nginx+keepalived实现nginx高可用
2022/6/30 5:22:17
本文主要是介绍Nginx+keepalived实现nginx高可用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Nginx+keepalived实现nginx高可用
nginx的安装已有现成文档,就不重新编写文档了
本文讲述主、从服务器各一台
1. 主、从服务器上安装keepalived
1.使用yum安装keepalived
yum -y install keepalived
2.查看keepalived是否安装成功,出现版本即成功
rpm -q -a keepalived
2.主、从服务器上修改keepalived配置(配置文件路径:/etc/keepalived/keepalived.conf)
1)主服务上修改配置
! Configuration File for keepalived global_defs { router_id just01 } vrrp_script chk_nginx { script "/usr/local/src/nginx_check.sh" #脚本文件路径 interval 3 # 检测脚本执行的间隔:3s weight 2 #权重,如果这个脚本检测为真,服务器权重+2 } vrrp_instance VI_1 { state MASTER # 指定keepalived的角色,MASTER为主,BACKUP为备。备份服务器上需将MASTER 改为BACKUP interface ens192 # 通信端口 通过ip addr可以看到,根据自己的机器配置 virtual_router_id 51 # vrrp实例id keepalived集群的实例id必须一致,即主、备机的virtual_router_id必须相同 priority 100 #优先级,数值越大,获取处理请求的优先级越高。主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 1 #心跳间隔,默认为1s。keepalived多机器集群 通过心跳检测当前服务器是否还正常工作,如果发送心跳没反应,备份服务器就会立刻接管; authentication { auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信 auth_pass justech #密码,主备服务器的要设成一样 } virtual_ipaddress { 10.66.53.200 # 定义虚拟ip(VIP),可多设,每行一个,需要是公司中未使用的ip,最好跟服务器真实ip的网段一样,比如测试环境10.66.53 正式环境10.66.52 } track_script { chk_nginx #定义脚本名称,与上面的 vrrp_script 的值一致 } }
2)从服务上修改配置
! Configuration File for keepalived global_defs { router_id just02 } vrrp_script chk_nginx { script "/usr/local/src/nginx_check.sh" #脚本文件路径 interval 3 # 检测脚本执行的间隔:3s weight 2 #权重,如果这个脚本检测为真,服务器权重+2 } vrrp_instance VI_1 { state BACKUP # 指定keepalived的角色,MASTER为主,BACKUP为备。 interface ens192 # 通信端口 通过ip addr可以看到,根据自己的机器配置 virtual_router_id 51 # vrrp实例id keepalived集群的实例id必须一致,即主、备机的virtual_router_id必须相同 priority 80 #优先级,数值越大,获取处理请求的优先级越高。主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 1 #心跳间隔,默认为1s。keepalived多机器集群 通过心跳检测当前服务器是否还正常工作,如果发送心跳没反应,备份服务器就会立刻接管; authentication { auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信 auth_pass justech #密码,主备服务器的要设成一样 } virtual_ipaddress { 10.66.53.200 # 定义虚拟ip(VIP),可多设,每行一个,需要是公司中未使用的ip,最好跟服务器真实ip的网段一样,比如测试环境10.66.53 正式环境10.66.52 } track_script { chk_nginx #定义脚本名称,与上面的 vrrp_script 的值一致 } }
2.主、从服务器上新增脚本文件,用于重启nginx或关闭keepalived
1) 创建文件
touch /usr/local/src/nginx_check.sh
2) 修改脚本文件内容
1.使用vim修改脚本文件
vim /usr/local/src/nginx_check.sh
2.将下面内容复制到脚本文件中
#! /bin/bash #检测nginx是否启动了 A=`ps -C nginx --no-header | wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf #启动nginx,视各个服务器上的nginx启动命令决定 sleep 2 #睡眠2秒 if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then systemctl stop keepalived.service #启动失败,将keepalived服务杀死。将vip漂移到其它备份节点 fi fi
注意:里面的启动nginx配置需要修改成主、从服务器上对应的启动命令
3) 对/usr/local/src/nginx_check.sh赋可执行权限
chmod 777 /usr/local/src/*.sh
3.启动相关服务
1) 启动nginx
1.如果以启动,则忽略
2) 启动keepalived
1.启动keepalived
systemctl start keepalived.service
2.查看keepalived是否启动成功
ps -ef|grep keepalived
3.补充关闭、重启keepalived命令
关闭:
systemctl stop keepalived.service
重启:
systemctl restart keepalived.service
这篇关于Nginx+keepalived实现nginx高可用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享