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

一、引言

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

在这里插入图片描述

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

VirtualBox安装Centos7

在Centos7下安装Nginx

Nginx配置——反向代理

Nginx配置——负载均衡

Nginx配置——动静分离

二、Nginx 高可用集群

高可用集群的架构图

下面使用两台Nginx做反向代理服务器,当其中一台Nginx宕机之后,仍能用另一台来工作,两台Nginx之间用keeplived来监测心跳。
在这里插入图片描述

三、如何配置

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的绑定
在这里插入图片描述

5、最终测试

(1)在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50
在这里插入图片描述

(2)把主服务器上的(192.168.17.129)Nginx 和 keepalived 停止,再输入 192.168.17.50,依旧可以访问Nginx。
在这里插入图片描述
在这里插入图片描述

  • 25
    点赞
  • 123
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 24
    评论
Nginx可以通过多种方式来配置高可用集群。以下是一种常见的配置方式: 1. 负载均衡器:使用Nginx作为负载均衡器来分发客户端请求到多个后端服务器。可以使用轮询、IP哈希、Least Connections等算法来决定请求的转发方式。 2. 后端服务器:搭建多个具有相同内容的后端服务器,可以是物理服务器或虚拟机。这些服务器可以运行相同的应用程序或网站,并且使用相同的配置文件。 3. 配置文件:在Nginx配置文件中,使用upstream指令定义后端服务器的列表,并使用server指令指定每个后端服务器的地址和端口。 4. 健康检查:配置Nginx进行健康检查,以确保后端服务器正常运行。可以使用HTTP、TCP或自定义的健康检查方式。 以下是一个简单的配置示例: ``` http { upstream backend { server backend1.example.com:80; server backend2.example.com:80; server backend3.example.com:80; } server { listen 80; server_name yourdomain.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } ``` 在上述示例中,`upstream`部分定义了三个后端服务器,`server`部分配置了监听的端口和域名,并使用`proxy_pass`指令将请求转发到后端服务器。 请注意,以上只是一个简单的示例,实际的配置取决于具体的需求和环境。在配置高可用集群时,还需要考虑故障转移、持久化存储等方面的问题。建议参考Nginx官方文档或其他权威资源进行更详细的配置和部署。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

止步前行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值