经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Nginx » 查看文章
Keepalived+Nginx高可用案例(抢占式与非抢占式)
来源:cnblogs  作者:付同學  时间:2023/11/22 16:45:43  对本文有异议

(1)下载安装Keepalived源码包

Keepalived官网源码包下载地址

在服务器上解压

  1. tar -xf keepalived-2.2.8.tar.gz

安装相关前置依赖

  1. yum -y install gcc gcc-c++

使用configure工具进行安装

  1. ./configure --sysconfdir=/etc --prefix=/usr/local/keepalived --sbindir=/usr/sbin --bindir=/usr/bin
  2. --sysconfdir=DIR #指定配置文件位置
  3. --prefix=DIR #指定安装路径
  4. --sbindir=DIR 指定命令位置,后面不需再配置环境变量

使用make make install进行安装

  1. make && make install

(2)配置Keepalived在业务中的参数

本次操作为Keepalived单VIP抢占式配置,即两个虚拟机只有一台绑定VIP对外提供服务,且在一台主机失能时VIP将漂移到备机上接收流量,当主机恢复时VIP将再次切换

主机配置
  1. global_defs {
  2. router_id logincas1 ### router_id为全局定义当前节点的id,一般为唯一
  3. enable_script_security
  4. script_user root ##定义执行脚本的角色
  5. vrrp_version 2
  6. }
  7. ## 定义脚本
  8. vrrp_script chk_nginx {
  9. script "/usr/local/nginx-check.sh" ##脚本路径
  10. interval 2 ##检测间隔
  11. timeout 4 ##失败间隔,失败两次通信则失败
  12. rise 4 ##成功四次则成功
  13. fall 2 ##失败两次则切换
  14. weight -50 ##脚本检测失败则扣减权重
  15. }
  16. vrrp_instance VI_1 { ##模块配置
  17. version 2
  18. state MASTER ##抢占式的情况下主机需设置为MASTER,备机为BACKUP
  19. interface eth0 ##指定VIP流量的网卡
  20. virtual_router_id 51 ##虚拟路由ID
  21. priority 100 ##优先级,备机应比主机低一些
  22. advert_int 1 ##VRRP心跳包发送间隔
  23. authentication { ##权限认证
  24. auth_type PASS ##类型:密码
  25. auth_pass 2222
  26. }
  27. virtual_ipaddress {
  28. 172.29.184.220/24 ##VIP配置
  29. }
  30. track_script { ##脚本定义
  31. chk_nginx
  32. }
  33. }

接下来需要补充完善 nginx-check.sh

  1. 思路是通过去检测是否有Nginx进程,检测到没有nginx进程时先执行Nginx的重启操作,一秒之后再次检测,如果Nginx进程还是不存在则关闭Keepalived,使VIP漂移到另一个节点
  2. #!/bin/bash
  3. if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
  4. systemctl restart nginx
  5. sleep 1
  6. if [ `ps -C nginx --no-header | wc -l` -eq 0 ]; then
  7. systemctl stop keepalived
  8. fi
  9. fi

遇到的一些问题

  1. 当在脚本里使用ps aux | grep nginx | grep -v grep | wc -l去检测Nginx进程时发现脚本一直未生效,合理怀疑是Keepalived运行用户在执行这条命令时存在权限问题(脚本不能配置权限为777Keepalived会警告并失效)
  1. 本次使用的高可用架构为单VIP架构,后续也可以尝试双VIP架构,即互为主备机,配置两个VIP模块,可以选择使用一个VIP接收流量,也可以使用两个VIP来监听流量,看业务的需求。
  2. 在单VIP高可用架构中,如果想要主机恢复后VIP不漂移到主机上,可以将主机的state也设置为BACKUP,但优先级需要比备机高一些,以确保初始状态VIP是绑定在主机上的

原文链接:https://www.cnblogs.com/iamxiaofu/p/17848680.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号