码迷,mamicode.com
首页 > 其他好文 > 详细

六、nginx 搭建高可用集群

时间:2021-05-24 08:39:55      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:load   自己   server   def   服务器   cas   failover   connect   ice   

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 搭建高可用集群

标签:load   自己   server   def   服务器   cas   failover   connect   ice   

原文地址:https://www.cnblogs.com/Amywangqing/p/14766752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!