nginx+keepalived

Posted 2步之遥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx+keepalived相关的知识,希望对你有一定的参考价值。

?Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:nginx、Haproxy、mysql等)的高可用解决方案软件。

一、准备

  1. 两台服务器(互相可以ping通)
  2. 都装nginx、keepalived
  3. 虚拟ip需要跟服务器ip在同一个网段

二、安装

  1. nginx

    参见我的另一篇文章

  2. keepalived

    yum install keepalived –y

    安装之后,在 etc 里面生成目录 keepalived ,有文件 keepalived.conf

三、配置

  1. keepalived主服务器配置(IP:192.168.0.6)

     global_defs {
     	notification_email {
     	782435839@qq.com
     } #定义报警邮件地址
     notification_email_from 782435839@qq.com
     smtp_server 127.0.0.1  #邮箱服务器
     smtp_connect_timeout 30 #定义超时时间
     router_id vm01 #定义路由标识信息,相同局域网唯一,一般为主机名
     } 
     vrrp_script chk_http_port {
     	script "/etc/nginxKeep/nginx_check.sh"
     	interval 2 #(检测脚本执行的间隔)
     	weight 2
     }
     vrrp_instance VI_1 {
     	state MASTER # 备份服务器上将 MASTER 改为 BACKUP
     	interface eth0 //网卡
     	virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
     	priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小
     	advert_int 1
     	authentication { #指定认证方式
     		auth_type PASS
     		auth_pass 1111
     	}
     	virtual_ipaddress {
     		192.168.0.50 // VRRP H 虚拟地址
     	}
     }
    
  2. keepalived丛服务器配置(IP:192.168.0.7)

     #跟主服务器一样
     #不同点修改
     router_id vm02 #定义路由标识信息,相同局域网唯一,一般为主机名
     state BACKUP # 备份服务器上将 MASTER 改为 BACKUP
     priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
    
  3. 检测脚本

    nginx_check.sh

     #!/bin/bash
     #nginx进程是否存在
     counter=$(ps -C nginx --no-heading|wc -l)
     if [ "${counter}" = "0" ]; then
     #尝试启动一次nginx,停止5秒后再次检测
         /etc/nginx
         sleep 5
         counter=$(ps -C nginx --no-heading|wc -l)
         if [ "${counter}" = "0" ]; then
     #如果启动没成功,就杀掉keepalive触发主备切换
             service keepalived stop
         fi
     fi
    

四、测试

两台服务器启动nginx和keepalived,访问虚拟ip192.168.0.50,都可访问到
关闭主服务器nginx和keepalived,192.168.0.50依旧可以访问

备注:

  1. 主要配置文件的权限为题
  2. 主要防火墙要开放端口
  3. selinux可能需要关闭

补充:
查找yum安装gcc的具体位置
rpm -qa | grep gcc
查找软件安装位置
rpm -ql gcc-4.8.5-36.el7.x86_64
卸载
yum -y remove gcc

以上是关于nginx+keepalived的主要内容,如果未能解决你的问题,请参考以下文章

Lvs+keepalived+Nginx双机热备实现Nginx高可用

nginx + keepalived 实现高可用性

keepalived+nginx

Nginx+keepalived双主配置(双机双主热备)

Nginx负载均衡+Keepalived高可用集群

nginx+keepalived(带nginx监控脚本)