麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > Nginx > 正文

詳解Keepalived+Nginx實現高可用(HA)

2024-08-30 12:29:43
字體:
來源:轉載
供稿:網友

keepalived的HA分為搶占模式和非搶占模式,搶占模式即MASTER從故障中恢復后,會將VIP從BACKUP節點中搶占過來。非搶占模式即MASTER恢復后不搶占BACKUP升級為MASTER后的VIP。下面分別介紹CentOS7下搶占模式和非搶占模式的配置方式:

1、方案規劃

 

VIP IP 主機名 Nginx端口
192.168.1.210 192.168.1.201 nginx-01 80
192.168.1.210 192.168.1.202 nginx-02 80

 

兩臺服務器的VIP為:192.168.1.210

分別在兩臺WEB服務器安裝nginx和keepalived: 
1、安裝Nginx,請參考《Nginx源碼安裝》 
2、安裝Keepalived,請參考《Keepalived安裝與配置》 
3、防火墻添加arrp組播規則,或關閉防火墻 

1> iptables

shell> vi /etc/sysconfig/iptables -A INPUT -p vrrp -d 224.0.0.18/32 -j ACCEPT

2> firewall

firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface enp4s0 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --reload

4、關閉selinux

shell> vi /etc/sysconfig/selinux#修改:SELINUX=disabled#setenforce 0

2、搶占模式配置

編輯/etc/keepalived/keepalived.conf配置文件

1> MASTER(192.168.1.201):

global_defs { router_id nginx_01 #標識本節點的名稱,通常為hostname}## keepalived會定時執行腳本并對腳本執行的結果進行分析,動態調整vrrp_instance的優先級。##如果腳本執行結果為0,并且weight配置的值大于0,則優先級相應的增加。如果腳本執行結果非0,##并且weight配置的值小于 0,則優先級相應的減少。其他情況,維持原本配置的優先級,即配置文件中priority對應的值。vrrp_script chk_nginx {  script "/etc/keepalived/nginx_check.sh"  interval 2 #每2秒檢測一次nginx的運行狀態  weight -20 #失敗一次,將自己的優先級-20}vrrp_instance VI_1 { state MASTER     # 狀態,主節點為MASTER,備份節點為BACKUP interface enp0s3    # 綁定VIP的網絡接口,通過ifconfig查看自己的網絡接口 virtual_router_id 51   # 虛擬路由的ID號,兩個節點設置必須一樣,可選IP最后一段使用,相同的VRID為一個組,他將決定多播的MAC地址 mcast_src_ip 192.168.1.201 # 本機IP地址 priority 100     # 節點優先級,值范圍0~254,MASTER要比BACKUP高 advert_int 1     # 組播信息發送時間間隔,兩個節點必須設置一樣,默認為1秒 # 設置驗證信息,兩個節點必須一致 authentication {  auth_type PASS  auth_pass 1111 } # 虛擬IP,兩個節點設置必須一樣。可以設置多個,一行寫一個 virtual_ipaddress {  192.168.1.210 } track_script {  chk_nginx # nginx存活狀態檢測腳本 }}

2> BACKUP(192.168.1.202)

global_defs { router_id nginx_02}vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 weight -20}vrrp_instance VI_1 { state BACKUP interface enp0s3 virtual_router_id 51 mcast_src_ip 192.168.1.202 priority 90 advert_int 1 authentication {  auth_type PASS  auth_pass 1111 } virtual_ipaddress {  192.168.1.210 } track_script {  chk_nginx }}

3> 創建nginx服務檢測腳本

分別在主備服務器/etc/keepalived目錄下創建nginx_check.sh腳本,并為其添加執行權限chmod +x /etc/keepalived/nginx_check.sh。用于keepalived定時檢測nginx的服務狀態,如果nginx停止了,會嘗試重新啟動nginx,如果啟動失敗,會將keepalived進程殺死,將vip漂移到備份機器上。

#!/bin/bashA=`ps -C nginx --no-header | wc -l`if [ $A -eq 0 ];then /opt/nginx/sbin/nginx #嘗試重新啟動nginx sleep 2 #睡眠2秒 if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then  killall keepalived #啟動失敗,將keepalived服務殺死。將vip漂移到其它備份節點 fifi

4> 啟動keepalived服務

shell> service keepalived startshell> ps -ef | grep keepalived[root@localhost ~]# ps -ef | grep keepalivedroot  865  1 0 23:36 ?  00:00:00 keepalived -Droot  869 865 0 23:36 ?  00:00:00 keepalived -Droot  870 865 0 23:36 ?  00:00:00 keepalived -D

如果看到如上進程信息,表示keepalived已經啟動成功。下面用ip add命令查看vip綁定的情況,如下圖所示: 

Keepalived,Nginx,高可用

從上圖可以看出,vip地址192.168.1.210綁定在MASTER(192.168.1.201)的enp0s3網卡上。

5> 測試故障轉移

將MASTER上的keepalived停止,查看vip是否會漂移到192.168.2.202上。

停止201的keepalived服務:

shell> service keepalived stopshell> ip addr

Keepalived,Nginx,高可用

從上圖可以看出,vip已經成功從201漂移到了202。此時再將201的keepalived服務啟動后,由于201是MASTER,所以會將202的VIP搶占過來。

啟動201的keepalived服務:

shell> service keepalived start

結果VIP又回到了201,如下圖所示: 

Keepalived,Nginx,高可用

3、非搶占模式

master從故障中恢復后,不會搶占備份節點的vip

1> MASTER(192.168.1.201):

global_defs { router_id nginx_01 #標識本節點的名稱,通常為hostname}vrrp_script chk_nginx {  script "/etc/keepalived/nginx_check.sh"  interval 2   weight -20}vrrp_instance VI_1 { state BACKUP      interface enp0s3     virtual_router_id 51    mcast_src_ip 192.168.1.201  priority 100      advert_int 1      nopreempt authentication {  auth_type PASS  auth_pass 1111 } virtual_ipaddress {  192.168.1.210 } track_script {  chk_nginx # nginx存活狀態檢測腳本 }}

2> BACKUP(192.168.1.202)

global_defs { router_id nginx_02}vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 weight -20}vrrp_instance VI_1 { state BACKUP interface enp0s3 virtual_router_id 51 mcast_src_ip 192.168.1.202 priority 90 advert_int 1 nopreempt authentication {  auth_type PASS  auth_pass 1111 } virtual_ipaddress {  192.168.1.210 } track_script {  chk_nginx }}

和非搶占模式的配置相比,只改了兩個地方: 

1> 在vrrp_instance塊下兩個節點各增加了nopreempt指令,表示不爭搶vip 

2> 節點的state都為BACKUP 

兩個keepalived節點都啟動后,默認都是BACKUP狀態,雙方在發送組播信息后,會根據優先級來選舉一個MASTER出來。由于兩者都配置了nopreempt,所以MASTER從故障中恢復后,不會搶占vip。這樣會避免VIP切換可能造成的服務延遲。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产系列 视频二区 | 黄色特级片黄色特级片 | 久久老司机精品视频 | chinesehdxxxx实拍| 精品国产一区二区三区成人影院 | 性插视频 | 九九精品免费 | 美女网站黄在线观看 | 欧美在线观看黄色 | 最污网站| 天天看成人免费毛片视频 | 国产精品资源手机在线播放 | 久色成人网 | 91香焦视频 | 欧美aaaaa一级毛片在线 | 亚洲成人高清电影 | 中文字幕h | 亚洲精品有限 | 欧美一级无毛 | 在线99热| 欧洲成人一区二区 | 大片毛片 | 日本高清一级片 | 免费视频一区 | 欧美日韩网站在线观看 | 黄色免费在线视频网站 | 日本精品久久久一区二区三区 | 依依成人综合 | 欧美国产日韩在线观看成人 | 国产正在播放 | 农村少妇吞精夜夜爽视频 | 永久久久 | 日本黄色免费播放 | 好吊一区二区三区 | 欧美日韩精品一区二区三区不卡 | 久久久久se | 免费a级网站 | 精品国产91久久久久久久妲己 | 中文区中文字幕免费看 | 男女羞羞视频在线免费观看 | 一区二区三区视频在线观看 |