实战:Nginx配置——搭建 Nginx 高可用集群(双机热备)

一、引言

在之前几篇文章中,都是介绍了一台Nginx做反向代理服务器,结构图如下。
但有没有想过,这种架构图,万一Nginx代理服务器挂掉了怎么办?后面的服务就都没有办法访问了,这是一个严重的问题。那怎么解决这个文件呢?这就是下面要说的Nginx的高可用集群,也可以叫双机热备。

实战:Nginx配置——搭建 Nginx 高可用集群(双机热备)

在学习之前,如果没有 Linux 和 Nginx 环境,或者想看一下反向代理、负载均衡、动静分离如何配置,可以参考之前文章。

二、Nginx 高可用集群

高可用集群的架构图

下面使用两台Nginx做反向代理服务器,当其中一台Nginx宕机之后,仍能用另一台来工作,两台Nginx之间用keeplived来监测心跳。
实战:Nginx配置——搭建 Nginx 高可用集群(双机热备)

三、如何配置

1、需要的环境

两台 Linux 并各自安装 Nginx 和 keepalived

2、配置高可用的准备工作

(1)需要两台服务器 192.168.17.129 、192.168.17.131
(2)在两台服务器安装 Nginx(可以参考前面文章)
(3)在两台服务器安装 keepalived

3、两台服务器都安装 keepalived

(1)、使用 yum 命令进行安装

yum install keepalived –y

(2)、keepalived 安装之后,其配置文件目录如下:

/etc/keepalived/keepalivec.conf 
4、完成高可用配置(主从配置)

(1)修改/etc/keepalived/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.17.129
  smtp_connect_timeout 30
  # 通过它,可以访问到主机,在hosts文件中,要做映射关系,类似于 127.0.0.1 LVS_DEVEL
  router_id LVS_DEVEL  
}

vrrp_script chk_http_port {
  script "/usr/local/src/nginx_check.sh"  # 执行脚本所在的位置
  interval 2  #检测脚本执行的间隔,单位秒,每个2秒执行一次脚本
  weight 2
}
 
vrrp_instance VI_1 {
  state MASTER  # 备份服务器上将 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.17.50  # VRRP H 虚拟地址
  }
}

(2)在/usr/local/src 添加检测脚本,检查Nginx是否还活着

#!/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

(3)把两台服务器上 nginx 和 keepalived 启动

启动 nginx:./nginx
启动 keepalived:systemctl start keepalived.service

可以使用ipconfig,查看虚拟Ip的绑定
实战:Nginx配置——搭建 Nginx 高可用集群(双机热备)

5、最终测试

(1)在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50
实战:Nginx配置——搭建 Nginx 高可用集群(双机热备)

(2)把主服务器上的(192.168.17.129)Nginx 和 keepalived 停止,再输入 192.168.17.50,依旧可以访问Nginx。
实战:Nginx配置——搭建 Nginx 高可用集群(双机热备)
实战:Nginx配置——搭建 Nginx 高可用集群(双机热备)


实战:Nginx配置——搭建 Nginx 高可用集群(双机热备)

原文始发于微信公众号(运维漫谈):实战:Nginx配置——搭建 Nginx 高可用集群(双机热备)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/220279.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!