六nginx 搭建高可用集群

Posted Amy清风

tags:

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

1、什么是 nginx 高可用

 

 

 

  • (1)需要两台 nginx 服务器

  • (2)需要 keepalived

  • (3)需要虚拟 ip

 

2、配置高可用的准备工作
(1)需要两台服务器 192.168.17.129 和 192.168.17.131

(2)在两台服务器安装 nginx

(3)在两台服务器安装 keepalived

3、在两台服务器安装 keepalived
(1)使用 yum 命令进行安装

yum install keepalived –y

 

 

 (2)查看keepalived是否安装

 rpm -q -a keepalived

 

 

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

 

 

 

 

 

 

4、完成高可用配置(主从配置)

Keepalived + Nginx 配合使用

主机192.168.17.129 Nginx

(1)修改/etc/keepalived/keepalivec.conf 配置文件

! Configuration File for keepalived

#全局配置
global_defs {

    notification_email {

        acassen@firewall.loc

        failover@firewall.loc

        sysadmin@firewall.loc
     }

    notification_email_from Alexandre.Cassen@firewall.loc

    smtp_server 192.168.17.129 # 主服务器IP地址

    smtp_connect_timeout 30

    router_id LVS_DEVEL # 主机名字是在hosts里面配置的如:127.0.0.1  LVS_DEVEL,也可以是主机IP
}

#脚本配置
vrrp_script chk_http_port {
        script "/usr/local/src/nginx_check.sh"  #检测脚本的位置
        interval 2 #(检测脚本执行的间隔)
        weight 2 # 权重
}
   
 #虚拟IP的配置
vrrp_instance VI_1 {
        state MASTER # 备份服务器上将 MASTER 改为 BACKUP
        interface eth1 # 网卡,通过ifconfig查看你自己的网卡
        virtual_router_id 51  # 主、备机的 virtual_router_id 必须相同
        priority 100  # 主、备机取不同的优先级,主机值较大,备份机值较小
        advert_int 1    #每隔1秒发送一个心跳检测一下,主机是否还活着
        #使用权限的一种方式,需要密码,密码为1111
        authentication {
                auth_type PASS
                auth_pass 1111
        }

        virtual_ipaddress {
             192.168.17.50 # VRRP H 虚拟地址IP,可以绑定多个虚拟地址IP
        }

}

(2)在/usr/local/src添加检测脚本:nginx_check.sh

#!/bin/bash
A=`ps -C nginx –no-header | wc -l`
if [ $A -eq 0 ];then
        /usr/local/nginx/sbin/nginx  #检测nginx是否挂掉
        sleep 2
        if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
            killall keepalived
        fi
fi

 

 

从机 Nginx

(1)修改/etc/keepalived/keepalivec.conf 配置文件

! Configuration File for keepalived

#全局配置
global_defs {

    notification_email {

        acassen@firewall.loc

        failover@firewall.loc

        sysadmin@firewall.loc
     }

    notification_email_from Alexandre.Cassen@firewall.loc

    smtp_server 192.168.17.129 # 主服务器IP地址

    smtp_connect_timeout 30

    router_id LVS_DEVEL # 主机名字是在hosts里面配置的如:127.0.0.1  LVS_DEVEL,也可以是主机IP
}

#脚本配置
vrrp_script chk_http_port {
        script "/usr/local/src/nginx_check.sh"  #检测脚本的位置
        interval 2 #(检测脚本执行的间隔)
        weight 2 # 权重
}
   
 #虚拟IP的配置
vrrp_instance VI_1 {
        state BACKUP # 备份服务器上将 MASTER 改为 BACKUP
        interface eth1 # 网卡,通过ifconfig查看你自己的网卡
        virtual_router_id 51  # 主、备机的 virtual_router_id 必须相同
        priority 90  # 主、备机取不同的优先级,主机值较大,备份机值较小
        advert_int 1    #每隔1秒发送一个心跳检测一下,主机是否还活着
        #使用权限的一种方式,需要密码,密码为1111
        authentication {
                auth_type PASS
                auth_pass 1111
        }

        virtual_ipaddress {
             192.168.17.50 # VRRP H 虚拟地址IP,可以绑定多个虚拟地址IP
        }

}

(2)在/usr/local/src添加检测脚本:nginx_check.sh

#!/bin/bash
A=`ps -C nginx –no-header | wc -l`
if [ $A -eq 0 ];then
        /usr/local/nginx/sbin/nginx  #检测nginx是否挂掉
        sleep 2
        if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
            killall keepalived
        fi
fi

 

启动 Nginx
分别启动主从 Nginx ,切换到/usr/local/nginx/sbin/,执行

./nginx

启动 Nginx ,如果已经启动过,就选择重启

./nginx -s reload

测试 Nginx 是否启动成功

ps -ef | grep nginx

 

 

启动 keepalived

启动 keepalived

service keepalived start
1
停止 keepalived

service keepalived stop
1
重启 keepalived

service keepalived restart



 

以上是关于六nginx 搭建高可用集群的主要内容,如果未能解决你的问题,请参考以下文章

使用nginx搭建高可用,高并发的wcf集群

Nginx+Keepalived搭建高可用负载平衡WEB 集群

nginx 搭建高可用集群

heartbeat+nginx搭建高可用HA集群

Nginx+Keeplived+Tomcat搭建高可用/负载均衡的web服务器集群

keepalived讲解及搭建高可用Nginx热备集群