本人的环境Centos 7 + nginx 1.12.2 + keepalived 1.3.5

nginx 主机 192.168.26.26 备机 192.168.26.126

安装:

在俩台服务器上安装nginx,keepalived

yum -y install keepalived : 安装keepalived
rpm -q -a keepalived: 查看安装版本号

keepalived配置文件:/etc/keepalived/keepalived.conf

关闭selinux

sed -i “s\SELINUX=enforcing\SELINUX=disabled\g” /etc/selinux/config
然后重启 shutdown -r now

替换/etc/keepalived/keepalived.conf 为我们写的keepalived.conf

备份:mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

在主机上

global_defs
{router_id lb01script_user root
}
vrrp_script chk_nginx
{script "/etc/keepalived/ngx_check.sh"interval 2weight -20user root
}
vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 150advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.26.50}track_script {chk_nginx}
}

在备机上:

global_defs
{router_id lb01script_user root
}
vrrp_script chk_nginx
{script "/etc/keepalived/ngx_check.sh"interval 2weight -20user root
}
vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 130advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.26.50}track_script {chk_nginx}
}

在俩台linux的/etc/keepalived/下创建ngx_check.sh

vi ngx_check.sh:

A=`ps -C nginx --no-header |wc -l` #查看系统中运行的nginx进程数,将结果赋值给A
if [ $A -eq 0 ];then  #如果A中的值等于0,表示无nginx运行。则启动echo "nginx is shutdown !!!"/usr/local/nginx/sbin/nginx #这里必须设置自己电脑上的nginx命令的位置。表示启动nginxsleep 2 #休眠2秒if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #如果系统中运行的nginx进程数依然为0,表示nginx启动失败,则关闭keepalived服务service keepalived stopecho "keepalived is shutdown !!!"fi
fi

使得可以运行:chomd 777 /etc/keepalived/nginx.sh
你可以手动运行已测试脚本是否正确:
sh /etc/keepalived/nginx.sh

启动nginx、keepalived

启动nginx:/usr/local/nginx/sbin/nginx
启动keepalived:systemctl start keepalived.service
查看keepalived状态:systemctl status keepalived

测试

1.访问虚拟ip:http://192.168.26.50
2.stop主机上的nginx:/usr/local/nginx/sbin/nginx -s stop
3.ps -ef | grep nginx
会发现nginx依然运行,脚本生效。
4.ip addr 可以查看当前虚拟地址192.168.26.50挂载了否

问题解决:

查看日志:tail -f -n 50 /var/log/messages

因为tail命名是不会停止的,所以应该使用俩个Xshell(或其他连接工具)连接linux,方便一边操作一边查看日志

Unknown keyword:’}’、‘track_script{’、'chk_nginx等等

配置文件格式不正确:注意global_defs 以及 vrrp_script的俩个大括号{}必须换行。其他的使用到大括号的’{‘地方,确保正文与大括号间有空格。如 ‘track_script {->track_script这里有空格{’ 不能写为’track_script{->track_script这里没有空格{’

{ no match, ignoring…、Disabling track script chk_nginx since not found、Unable to access script /etc/keepalived/nginx_check.sh

确保vrrp_script的俩个大括号{}必须换行。确保track_script中的引用与vrrp_script声明的chk_nginx相同、vrrp_script中ngx_check.sh的路径要给正确

Unsafe permissions found for script ‘/etc/keepalived/ngx_check.sh’、Disabling track script chk_nginx due to insecure

global_defs 中不要使用enable_script_security,而应该使用user root.正如上面给出的keepalived.conf一样。

其他问题:

如果你复制我的keepalived.conf 和 ngx_check.sh。还是出现错误,你应该确保你要替换其中的一些路径以及IP地址。

日志信息:

May 26 18:59:33 localhost Keepalived_vrrp[1879]: VRRP_Script(chk_nginx) succeeded
表示使用脚本成功

当你关闭nginx后:
May 26 19:01:45 localhost Keepalived_vrrp[1879]: VRRP_Script(chk_nginx) timed out
May 26 19:01:45 localhost Keepalived_vrrp[1879]: /etc/keepalived/ngx_check.sh exited due to signal 15
May 26 19:01:45 localhost Keepalived_vrrp[1879]: VRRP_Script(chk_nginx) succeeded

如果能帮助到你,请给我点个赞。生活愉快~谢谢!关于nginx的其他配置见我主页,谢谢

linux下配置nginx+keepalived高可用的各种问题以及解决办法相关推荐

  1. Linux 下配置 Hadoop2.x 高可用 zookeeper Yarn,详细步骤。

    此系列文章是探索大数据道路的记录,有些记录是为了备忘,有些记录是为了学习心得内容,有些是为了给大家提供一个好的学习资料.持续更新中-大家也可以到我的私人blog查看该系列文章.blog.cutexim ...

  2. Nginx+keepalived高可用配置实战

    1.整体架构图如下 2.环境准备 今天所配置的是keepalived+nginx 的负载均衡 下载keepalived软件 [root@LB01 tools]# wget http://www.kee ...

  3. RabbitMQ集群安装配置+HAproxy+Keepalived高可用

    RabbitMQ集群安装配置+HAproxy+Keepalived高可用 转自:https://www.linuxidc.com/Linux/2016-10/136492.htm rabbitmq 集 ...

  4. keep老是显示服务器开小差,nginx+keepalived高可用服务器宕机解决方案

    原标题:nginx+keepalived高可用服务器宕机解决方案 1.基本服务器宕机的主从切换配置 两台nginx服务器,分别安装keepalived,配置/etc/keepalived/keepal ...

  5. Nginx+Keepalived高可用集群应用实践

    Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...

  6. nginx+keepalived高可用web架构

    nginx+keepalived高可用web架构 1.下载所需的软件包 (1).keepalived软件包keepalived-1.1.20.tar.gz (2).nginx软件包nginx-1.1. ...

  7. linux cgi c环境配置,Linux下配置nginx支持.cgi | 系统运维

    说明: 操作系统:CentOS 6.x web环境:php+nginx+mysql nginx安装目录:/usr/local/nginx nginx配置文件:/usr/local/nginx/conf ...

  8. (七)centos7案例实战——nginx+keepalived高可用服务器集群搭建

    前言 本节内容延续之前的内容,往期博客已经介绍了如何安装nginx服务器以及将nginx安装成为一个系统服务,本节内容是在前期内容的基础上,搭建一个高可用的nginx服务器集群,主要使用Keepali ...

  9. Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法

    Ubuntu Linux 下文件名乱码(无效的编码)的快速解决办法 文件是在WIndows 下创建的,Windows 的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码 不 ...

最新文章

  1. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 1. 一元线性回归
  2. CentOS7使用阿里云镜像安装Mongodb
  3. c语言手机通讯录退出程序,通讯录小程序(C/C++)C语言练习小程序
  4. Haproxy + Pacemaker 实现高可用负载均衡(一)
  5. 华为手机截屏怎么截长图_华为手机5种常用截屏方式,教你轻松定格屏幕精彩瞬间...
  6. 谷歌浏览器jsonView下载及安装
  7. 申论指导:申论作答的角度
  8. 【播放器】媒体播放器三大架构
  9. android实现延时的方法,Android实现延时总结
  10. lucene in ation 第三章(1) sear…
  11. 数字电视业务PSI-SI学习系列
  12. mysql 两个字段相乘_触发将来自不同表的两列与mysql中的函数相乘
  13. k8spod控制器概述
  14. 百度地图,开启marker点拖拽,并监听拖拽后的坐标位置
  15. 利用静态实现单例模式
  16. Dingzohu(钉子户团队-武汉晴川学院工程分组)
  17. 微信小程序中使用 iconfont 图标的四种方法
  18. Python 数字图片盲水印
  19. SNS与在线旅游的整合实践
  20. 天邑TEWA-808AE融合机刷机,当贝桌面TTL烧录包

热门文章

  1. macbook只在外接显示器显示的方法
  2. cloudflare免费证书_通过Cloudflare开启全站https
  3. 整天的胡思乱想怎么办
  4. Mysql出现问题:ERROR 1160 ( 08S01 (ER_NET_ERROR_ON_WRITE)): Got an error writing communication packe解决方案
  5. linux 用户的基本权限UGO
  6. knowledge base 知识库
  7. GeneXus学习记录——创建KB(KnowledgeBase/知识库)
  8. 自媒体头条号平台的消重机制,你了解了吗?
  9. 【Oracle数据库】基础查询
  10. 2021最新 Docker安装Mysql挂载教程(小白也能懂)!