<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
nginx單機部署時,一旦宕機就會導致整個服務的不可用,導致雪崩式效應。叢集式部署是解決單點式雪崩效應的有效方案,本文將在centos環境下,結合Keepalived搭建高可用的nginx叢集。
當用戶端請求伺服器時,若利用nginx作為代理,則會首先存取nginx伺服器,再通過nginx伺服器轉發到對應的伺服器上。上述架構圖的原理是:nginx-01和nginx-02是兩臺nginx伺服器,其中nginx-01作為主伺服器,通過keepalived與nginx-02形成一個小叢集,同時還可以與nginx-03、nginx-04…nginx-n等多臺伺服器構成叢集。當nginx-01因為某些原因宕機而停止服務時,其它nginx伺服器會選舉一個進行替代,使整個服務保持正常的執行。
Keepalived是一款基於vrrp協定的高可用叢集軟體,通過虛擬IP(VIP)對外提供服務,能夠實時監控叢集中伺服器的執行狀態並自動進行故障隔離,這些伺服器都啟動著相同的服務,當主伺服器發生故障時,會自動將虛擬IP漂移到備份伺服器,從而實現業務高可用。
1.需要兩臺nginx伺服器
2.需要keepalived
3.需要虛擬ip
分別在了兩臺虛擬機器器上,利用yum指令安裝keepalived,指令如下:
yum install keepalived
可以利用下述指令確認是否安裝成功,成功的話則會顯示版本號,具體如下:
rpm -q -a keepalived
若非特別指定安裝目錄,則在centos的安裝路徑如下:
/etc/keepalived
由於是主從設定,在主伺服器中,找到keepalived.conf的檔案,進行替換,該檔案儲存於/etc/keepalived路徑下,找到後替換為如下內容:
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檔案中看;通過它存取到主機 } vrrp_script chk_http_ port { script "/usr/local/src/nginx_check.sh" interval 2 # (檢測指令碼執行的間隔)2s weight 2 #權重,如果這個指令碼檢測為真,伺服器權重+2 } vrrp_instance VI_1 { state MASTER # 備份伺服器上將MASTER 改為BACKUP interface ens33 #網路卡名稱,可檢視對應伺服器的網路卡 virtual_router_id 51 # 主、備機的virtual_router_id必須相同 priority 100 #主、備機取不同的優先順序,主機值較大,備份機值較小 advert_int 1 #每隔1s傳送一次心跳 authentication { # 校驗方式, 型別是密碼,密碼1111 auth type PASS auth pass 1111 } virtual_ipaddress { # 虛擬ip 192.168.200.50 // VRRP H虛擬ip地址 } }
備份伺服器的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檔案中看;通過它存取到主機 } vrrp_script chk_http_ port { script "/usr/local/src/nginx_check.sh" interval 2 # (檢測指令碼執行的間隔)2s weight 2 #權重,如果這個指令碼檢測為真,伺服器權重+2 } vrrp_instance VI_1 { state MASTER # 備份伺服器上將MASTER 改為BACKUP interface ens33 #網路卡名稱,可檢視對應伺服器的網路卡 virtual_router_id 51 # 主、備機的virtual_router_id必須相同 priority 10 #主、備機取不同的優先順序,主機值較大,備份機值較小 advert_int 1 #每隔1s傳送一次心跳 authentication { # 校驗方式, 型別是密碼,密碼1111 auth type PASS auth pass 1111 } virtual_ipaddress { # 虛擬ip 192.168.200.50 // VRRP H虛擬ip地址 } }
檔案儲存為bash型別,命名為:nginx_check.sh,也可以自定義檔名稱,指令碼內容如下:
#! /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
指令碼可根據喜好來自定義資料夾存放,我這裡存放於/usr/local/src/nginx_check.sh,注意一點的是,指令碼存放的路徑必須與keepalived.conf中設定的指令碼檔案路徑一致。指令碼路徑更改,則keepalived.conf中的路徑也要修改。
分別在兩臺伺服器上執行如下指令:
systemctl start keepalived.service
檢視keepalived程序是否執行,
ps -ef|grep keepalived
若執行成功,則會出現以下介面:
在主伺服器和從伺服器上,分別利用nginx啟動命令啟動nginx服務,在nginx安裝目錄下執行如下指令:
./nginx
1測試方案如下
(1)關閉主伺服器上的nginx
在nginx安裝目錄下執行如下指令:
./nginx -s stop
(2)存取虛擬ip
在外部瀏覽器輸入:
192.168.200.50:80
若能正常彈出nginx歡迎頁面,則表明叢集搭建成功,主伺服器nginx宕機後,從伺服器會代替服務。
1.本文利用兩臺伺服器模擬nginx叢集狀態,當nginx master宕機後,從伺服器會代替服務;
2.模擬叢集關鍵三要素:keepalived、監測指令碼、虛擬ip;
3.在某些情況下,需要為指令碼新增可執行許可權,指令如下:
chmod +x /usr/local/src/nginx_check.sh #指令碼地址根據實際情況而定
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
到此這篇關於centos環境下nginx高可用叢集搭建的文章就介紹到這了,更多相關nginx高可用叢集搭建內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45