nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > nginx 高可用集群

nginx搭建高可用集群的实现方法

作者:呆萌很

本文主要介绍了nginx搭建高可用集群的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Keepalived+Nginx 高可用集群(主从模式)

集群架构图

1、准备两台装有Nginx虚拟机

2、都需安装Keepalived

yum install keepalived -y

查看是否安装成功

rpm -q -a keepalived

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

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

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

主服务配置:keepalivec.conf

global_defs {
	 notification_email {
		 acassen@firewall.loc
		 failover@firewall.loc
		 sysadmin@firewall.loc
	 }
	 notification_email_from Alexandre.Cassen@firewall.loc
	 smtp_server 192.168.19.129
	 smtp_connect_timeout 30
	 router_id LVS_DEVEL
}
vrrp_script chk_http_port {
	 script "/usr/local/src/nginx_check.sh"
	 interval 2 #(检测脚本执行的间隔)
	 weight 2
}
vrrp_instance VI_1 {
	 state MASTER # 备份服务器上将 MASTER 改为 BACKUP 
	 interface ens33 //网卡
	 virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
	 priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小
	 advert_int 1
	 authentication {
		 auth_type PASS
		 auth_pass 1111
	 }
	 virtual_ipaddress {
		192.168.19.50 # VRRP H 虚拟地址(非真实物理地址)
	 } 
}

从服务配置:keepalivec.conf

global_defs {
	 notification_email {
		 acassen@firewall.loc
		 failover@firewall.loc
		 sysadmin@firewall.loc
	 }
	 notification_email_from Alexandre.Cassen@firewall.loc
	 smtp_server 192.168.19.129
	 smtp_connect_timeout 30
	 router_id LVS_DEVEL
}
vrrp_script chk_http_port {
	 script "/usr/local/src/nginx_check.sh"
	 interval 2 #(检测脚本执行的间隔)
	 weight 2
}
vrrp_instance VI_1 {
	 state BACKUP # 备份服务器上将 MASTER 改为 BACKUP 
	 interface ens33 //网卡
	 virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
	 priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
	 advert_int 1
	 authentication {
		 auth_type PASS
		 auth_pass 1111
	 }
	 virtual_ipaddress {
		192.168.19.50 # VRRP H 虚拟地址(非真实物理地址)
	 } 
}

在/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
    sleep 2
    if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        killall keepalived
    fi
fi

把两台服务器上 nginx 和 keepalived 启动 重新启动 nginx 启动 keepalived:

systemctl start keepalived.service

检验keepalived是否启动成功

ps -ef | grep keepalived

最终测试 在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50访问

在master 输入 ip a 可以查看到

 停止主服务器仍可以访问从服务器

systemctl stop keepalived.service
docker stop mynginx

至此实现nginx高可用集群。更多相关nginx 高可用集群内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文