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 {
		 [email protected]
		 [email protected]
		 [email protected]
	 }
	 notification_email_from [email protected]
	 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。
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章