欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

centos環(huán)境下nginx高可用集群的搭建指南

 更新時(shí)間:2022年07月20日 09:59:19   作者:程可愛(ài)  
為了防止Nginx單點(diǎn)故障造成服務(wù)器癱瘓,本文介紹了Nginx實(shí)現(xiàn)高可用集群構(gòu)建,下面這篇文章主要給大家介紹了關(guān)于centos環(huán)境下nginx高可用集群的搭建指南,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.概述

nginx單機(jī)部署時(shí),一旦宕機(jī)就會(huì)導(dǎo)致整個(gè)服務(wù)的不可用,導(dǎo)致雪崩式效應(yīng)。集群式部署是解決單點(diǎn)式雪崩效應(yīng)的有效方案,本文將在centos環(huán)境下,結(jié)合Keepalived搭建高可用的nginx集群。

2.CentOS中nginx集群搭建

2.1 集群架構(gòu)圖

當(dāng)客戶(hù)端請(qǐng)求服務(wù)器時(shí),若利用nginx作為代理,則會(huì)首先訪(fǎng)問(wèn)nginx服務(wù)器,再通過(guò)nginx服務(wù)器轉(zhuǎn)發(fā)到對(duì)應(yīng)的服務(wù)器上。上述架構(gòu)圖的原理是:nginx-01和nginx-02是兩臺(tái)nginx服務(wù)器,其中nginx-01作為主服務(wù)器,通過(guò)keepalived與nginx-02形成一個(gè)小集群,同時(shí)還可以與nginx-03、nginx-04…nginx-n等多臺(tái)服務(wù)器構(gòu)成集群。當(dāng)nginx-01因?yàn)槟承┰蝈礄C(jī)而停止服務(wù)時(shí),其它nginx服務(wù)器會(huì)選舉一個(gè)進(jìn)行替代,使整個(gè)服務(wù)保持正常的運(yùn)行。

2.2 Keepalived

Keepalived是一款基于vrrp協(xié)議的高可用集群軟件,通過(guò)虛擬IP(VIP)對(duì)外提供服務(wù),能夠?qū)崟r(shí)監(jiān)控集群中服務(wù)器的運(yùn)行狀態(tài)并自動(dòng)進(jìn)行故障隔離,這些服務(wù)器都啟動(dòng)著相同的服務(wù),當(dāng)主服務(wù)器發(fā)生故障時(shí),會(huì)自動(dòng)將虛擬IP漂移到備份服務(wù)器,從而實(shí)現(xiàn)業(yè)務(wù)高可用。

2.3 集群搭建準(zhǔn)備

1.需要兩臺(tái)nginx服務(wù)器

2.需要keepalived

3.需要虛擬ip

2.4 集群搭建

2.4.1 安裝keepalived

分別在了兩臺(tái)虛擬機(jī)上,利用yum指令安裝keepalived,指令如下:

yum install keepalived

可以利用下述指令確認(rèn)是否安裝成功,成功的話(huà)則會(huì)顯示版本號(hào),具體如下:

rpm -q -a keepalived 

若非特別指定安裝目錄,則在centos的安裝路徑如下:

/etc/keepalived

2.4.2 配置keepalived.conf

由于是主從配置,在主服務(wù)器中,找到keepalived.conf的文件,進(jìn)行替換,該文件存儲(chǔ)于/etc/keepalived路徑下,找到后替換為如下內(nèi)容:

global_defs {
	notification_email {
	  acassen@firewall.loc
	  failover@firewall.loc
	  sysadmin@firewall.loc
	}
	notification_email_from Alexandre.Cassen@firewall.loc
	smtp_ server 192.168.200.129
	smtp_connect_timeout 30
	router_id LVS_DEVEL	# LVS_DEVEL這字段在/etc/hosts文件中看;通過(guò)它訪(fǎng)問(wèn)到主機(jī)
}

vrrp_script chk_http_ port {
	script "/usr/local/src/nginx_check.sh"
	interval 2   # (檢測(cè)腳本執(zhí)行的間隔)2s
	weight 2  #權(quán)重,如果這個(gè)腳本檢測(cè)為真,服務(wù)器權(quán)重+2
}

vrrp_instance VI_1 {
	state MASTER   # 備份服務(wù)器上將MASTER 改為BACKUP
	interface ens33 #網(wǎng)卡名稱(chēng),可查看對(duì)應(yīng)服務(wù)器的網(wǎng)卡
	virtual_router_id 51 # 主、備機(jī)的virtual_router_id必須相同
	priority 100   #主、備機(jī)取不同的優(yōu)先級(jí),主機(jī)值較大,備份機(jī)值較小
	advert_int 1	#每隔1s發(fā)送一次心跳
	authentication {	# 校驗(yàn)方式, 類(lèi)型是密碼,密碼1111
        auth type PASS
        auth pass 1111
    }
	virtual_ipaddress { # 虛擬ip
		192.168.200.50 // VRRP H虛擬ip地址
	}
}

備份服務(wù)器的keepalived.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.200.129
	smtp_connect_timeout 30
	router_id LVS_DEVEL	# LVS_DEVEL這字段在/etc/hosts文件中看;通過(guò)它訪(fǎng)問(wèn)到主機(jī)
}

vrrp_script chk_http_ port {
	script "/usr/local/src/nginx_check.sh"
	interval 2   # (檢測(cè)腳本執(zhí)行的間隔)2s
	weight 2  #權(quán)重,如果這個(gè)腳本檢測(cè)為真,服務(wù)器權(quán)重+2
}

vrrp_instance VI_1 {
	state MASTER   # 備份服務(wù)器上將MASTER 改為BACKUP
	interface ens33 #網(wǎng)卡名稱(chēng),可查看對(duì)應(yīng)服務(wù)器的網(wǎng)卡
	virtual_router_id 51 # 主、備機(jī)的virtual_router_id必須相同
	priority 10   #主、備機(jī)取不同的優(yōu)先級(jí),主機(jī)值較大,備份機(jī)值較小
	advert_int 1	#每隔1s發(fā)送一次心跳
	authentication {	# 校驗(yàn)方式, 類(lèi)型是密碼,密碼1111
        auth type PASS
        auth pass 1111
    }
	virtual_ipaddress { # 虛擬ip
		192.168.200.50 // VRRP H虛擬ip地址
	}
}

2.4.3 編寫(xiě)nginx監(jiān)測(cè)腳本

文件保存為bash類(lèi)型,命名為:nginx_check.sh,也可以自定義文件名稱(chēng),腳本內(nèi)容如下:

#! /bin/bash
A=`ps -C nginx -no-header | wc - 1`
if [ $A -eq 0];then
	/usr/local/nginx/sbin/nginx
	sleep 2
	if [`ps -C nginx --no-header| wc -1` -eq 0 ];then
		killall keepalived
	fi
fi

腳本可根據(jù)喜好來(lái)自定義文件夾存放,我這里存放于/usr/local/src/nginx_check.sh,注意一點(diǎn)的是,腳本存放的路徑必須與keepalived.conf中配置的腳本文件路徑一致。腳本路徑更改,則keepalived.conf中的路徑也要修改。

2.4.4 啟動(dòng)keepalived

分別在兩臺(tái)服務(wù)器上執(zhí)行如下指令:

systemctl start keepalived.service

查看keepalived進(jìn)程是否運(yùn)行,

ps -ef|grep keepalived

若運(yùn)行成功,則會(huì)出現(xiàn)以下界面:

2.4.5 啟動(dòng)nginx

在主服務(wù)器和從服務(wù)器上,分別利用nginx啟動(dòng)命令啟動(dòng)nginx服務(wù),在nginx安裝目錄下執(zhí)行如下指令:

./nginx

2.4.6 測(cè)試

1測(cè)試方案如下

(1)關(guān)閉主服務(wù)器上的nginx

在nginx安裝目錄下執(zhí)行如下指令:

./nginx -s stop

(2)訪(fǎng)問(wèn)虛擬ip

在外部瀏覽器輸入:

192.168.200.50:80

若能正常彈出nginx歡迎頁(yè)面,則表明集群搭建成功,主服務(wù)器nginx宕機(jī)后,從服務(wù)器會(huì)代替服務(wù)。

3.小結(jié)

1.本文利用兩臺(tái)服務(wù)器模擬nginx集群狀態(tài),當(dāng)nginx master宕機(jī)后,從服務(wù)器會(huì)代替服務(wù);

2.模擬集群關(guān)鍵三要素:keepalived、監(jiān)測(cè)腳本、虛擬ip;

3.在某些情況下,需要為腳本添加可執(zhí)行權(quán)限,指令如下:

chmod +x /usr/local/src/nginx_check.sh #腳本地址根據(jù)實(shí)際情況而定

4.參考文獻(xiàn)

1.https://www.bilibili.com/video/BV1zJ411w7SV?t=85&p=1

2.https://juejin.cn/post/6844903956192182285

3.https://juejin.cn/post/6844903929738854413

4.https://juejin.cn/post/6844903585449246733

總結(jié)

到此這篇關(guān)于centos環(huán)境下nginx高可用集群搭建的文章就介紹到這了,更多相關(guān)nginx高可用集群搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • nginx地址重定向的方法

    nginx地址重定向的方法

    這篇文章主要介紹了nginx地址重定向的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • nginx 配置靜態(tài)緩存及靜態(tài)緩存文件沒(méi)有生成的問(wèn)題及解決方案

    nginx 配置靜態(tài)緩存及靜態(tài)緩存文件沒(méi)有生成的問(wèn)題及解決方案

    這篇文章主要介紹了nginx 配置靜態(tài)緩存及靜態(tài)緩存文件沒(méi)有生成的問(wèn)題及解決方案,本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Nginx中Location從零開(kāi)始的配置教程

    Nginx中Location從零開(kāi)始的配置教程

    這篇文章主要給大家介紹了關(guān)于Nginx中Location從零開(kāi)始的配置教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • Nginx設(shè)置響應(yīng)超時(shí)配置的實(shí)現(xiàn)

    Nginx設(shè)置響應(yīng)超時(shí)配置的實(shí)現(xiàn)

    本文詳細(xì)介紹了如何查找和修改Nginx的配置文件,包括全局配置文件、站點(diǎn)配置文件、包含文件的查找,以及客戶(hù)端超時(shí)設(shè)置、代理超時(shí)設(shè)置、FastCGI超時(shí)設(shè)置的修改方法,最后還介紹了如何在Linux系統(tǒng)中重啟Nginx服務(wù),通過(guò)這些步驟,可以有效提高Nginx的性能和穩(wěn)定性
    2024-10-10
  • nginx限制并發(fā)連接請(qǐng)求數(shù)的方法

    nginx限制并發(fā)連接請(qǐng)求數(shù)的方法

    這篇文章主要介紹了nginx限制并發(fā)連接請(qǐng)求數(shù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Nginx之為已安裝nginx動(dòng)態(tài)添加模塊的方法

    Nginx之為已安裝nginx動(dòng)態(tài)添加模塊的方法

    本篇文章主要介紹了Nginx之為已安裝nginx動(dòng)態(tài)添加模塊的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • nginx ip黑名單動(dòng)態(tài)封禁的例子

    nginx ip黑名單動(dòng)態(tài)封禁的例子

    今天小編就為大家分享一篇nginx ip黑名單動(dòng)態(tài)封禁的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Nginx端口被占用的解決方案(systemctl restart nginx失敗)

    Nginx端口被占用的解決方案(systemctl restart nginx失敗)

    ginx (engine x) 是一個(gè)高性能的HTTP和反向代理服務(wù)器,也是一個(gè)IMAP/POP3/SMTP服務(wù)器,它也是一種輕量級(jí)的Web服務(wù)器,可以作為獨(dú)立的服務(wù)器部署網(wǎng)站(類(lèi)似Tomcat),本文給大家介紹了NGINX啟動(dòng)報(bào)錯(cuò),端口被占用解決方案,需要的朋友可以參考下
    2024-10-10
  • Nginx中常見(jiàn)header配置及修改

    Nginx中常見(jiàn)header配置及修改

    在nginx中,經(jīng)常需要因?yàn)楦鞣N原因,修改header,本文就來(lái)介紹一下header配置及修改,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • nginx?rewrite?用法如何使用rewrite去除URL中的特定參數(shù)

    nginx?rewrite?用法如何使用rewrite去除URL中的特定參數(shù)

    日常服務(wù)中經(jīng)常會(huì)用Nginx做一層代理轉(zhuǎn)發(fā),把Nginx當(dāng)做前置機(jī),這篇文章主要介紹了nginx?rewrite?用法如何使用rewrite去除URL中的特定參數(shù),需要的朋友可以參考下
    2024-02-02

最新評(píng)論