Nginx+keepalived實現(xiàn)高可用

Nginx一般用來做服務網(wǎng)關囊咏,雖然Nginx的性能非常高,但是還是有宕機的風險,所以Nginx的高可用也是我們需要考慮的。常見的Nginx的高可用方案是使用keepalived浮動IP技術來實現(xiàn)络拌。

通過keepalived虛擬一個vip出來作為虛擬網(wǎng)關,所有請求都先通過虛擬網(wǎng)關找到真正網(wǎng)關回溺,再往下走。當主宕機了后混萝,從會接過主的責任對外提供服務遗遵,當主復活后從又會將權限還給主,如圖:

image.png

keepalived主要功能

  • 管理LVS負載均衡軟件
  • 實現(xiàn)LVS集群節(jié)點的健康檢查
  • 作為系統(tǒng)網(wǎng)絡服務的高可用性(failover)

使用keepalived來監(jiān)控nginx

keepalived通過shell腳本的方式來監(jiān)控nginx的進程數(shù)量逸嘀,從而判斷nginx是否死掉车要,如果死掉就通過命令重啟Nginx,腳本文件/usr/local/src/chk_nginx_pid.sh如下:

#!/bin/bash
A=`ps -C nginx --no-header |wc -l`     #統(tǒng)計nginx進程數(shù)    
if [ $A -eq 0 ];then                            
      /usr/local/nginx/sbin/nginx                #重啟nginx
      if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重啟失敗崭倘,則停掉keepalived服務翼岁,進行VIP轉移
              killall keepalived    #殺掉类垫,vip就漫游到另一臺機器                
      fi
fi
  1. 統(tǒng)計nginx進程數(shù) ,如果進程數(shù)為0則重啟nginx琅坡。
  2. 重啟nginx后重新統(tǒng)計nginx進程數(shù)悉患,如果還是0表示nginx重啟失敗。
  3. nginx重啟失敗榆俺,則殺掉本機keepalived進程售躁,這時虛IP就會浮動到從Nginx服務器上。

keepalived配置

keepalived需要和nginx安裝在一臺機器上茴晋,然后打開/etc/keepalived/keepalived.conf配置keepalived陪捷。

keepalived主:

! Configuration File for keepalived

global_defs {
   router_id LVS_1
}
vrrp_script chk_http_port {
    script "/usr/local/src/chk_nginx_pid.sh" #心跳執(zhí)行的腳本
    interval 2                          #(檢測腳本執(zhí)行的間隔,單位是秒)
    weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0   #系統(tǒng)網(wǎng)卡
    virtual_router_id 51 #主備兩機器一致
    priority 100   #值大的機器诺擅,勝出
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    track_script {
        chk_http_port            #(調用檢測腳本)
    }
    virtual_ipaddress { #可虛擬多個ip
        192.168.244.200
    }
}

keepalived從:

! Configuration File for keepalived

global_defs {
   router_id LVS_2
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 50 
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.244.200
    }
}

主從差異配置只有兩個市袖,如下:

  • state BACKUP:指定keepalived的角色,MASTER為主烁涌,BACKUP為備苍碟。
  • priority 50:優(yōu)先級,數(shù)值越大烹玉,處理請求的優(yōu)先級越高驰怎,備用數(shù)字小些。

keepalived腦裂

keepalived的主節(jié)點會定期往備節(jié)點發(fā)送心跳包二打,當備節(jié)點沒有接收到心跳包的時候县忌,會認為主節(jié)點掛了,那么他就會接過主節(jié)點的責任對外提供服務继效,表現(xiàn)形式就是備節(jié)點上出現(xiàn)了虛擬IP症杏。這時有可能發(fā)生腦裂情況,所以我們還需要通過shell腳本監(jiān)控keepalived的腦裂情況瑞信,腳本如下:

#!/bin/bash
# 檢查腦裂的腳本厉颤,在備節(jié)點上進行部署
LB01_VIP=10.10.10.229
LB01_IP=10.10.10.129
LB02_IP=10.10.10.130
while true
do
  ping -c 2 -W 3 $LB01_VIP &>/dev/null
    if [ $? -eq 0 -a `ip add|grep "$LB01_VIP"|wc -l` -eq 1 ];then
        echo "ha is brain."
    else
        echo "ha is ok"
    fi
    sleep 5
done
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市凡简,隨后出現(xiàn)的幾起案子逼友,更是在濱河造成了極大的恐慌,老刑警劉巖秤涩,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件帜乞,死亡現(xiàn)場離奇詭異,居然都是意外死亡筐眷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來照棋,“玉大人资溃,你說我怎么就攤上這事×姨浚” “怎么了溶锭?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梳庆。 經常有香客問我暖途,道長,這世上最難降的妖魔是什么膏执? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任驻售,我火速辦了婚禮,結果婚禮上更米,老公的妹妹穿的比我還像新娘欺栗。我一直安慰自己,他們只是感情好征峦,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布迟几。 她就那樣靜靜地躺著,像睡著了一般栏笆。 火紅的嫁衣襯著肌膚如雪类腮。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天蛉加,我揣著相機與錄音蚜枢,去河邊找鬼。 笑死针饥,一個胖子當著我的面吹牛厂抽,可吹牛的內容都是我干的。 我是一名探鬼主播丁眼,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼筷凤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苞七?” 一聲冷哼從身側響起藐守,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蹂风,沒想到半個月后吗伤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡硫眨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片礁阁。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡巧号,死狀恐怖,靈堂內的尸體忽然破棺而出姥闭,到底是詐尸還是另有隱情丹鸿,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布棚品,位于F島的核電站靠欢,受9級特大地震影響,放射性物質發(fā)生泄漏铜跑。R本人自食惡果不足惜门怪,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锅纺。 院中可真熱鬧掷空,春花似錦、人聲如沸囤锉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽官地。三九已至酿傍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間驱入,已是汗流浹背赤炒。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沧侥,地道東北人可霎。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像宴杀,于是被迫代替她去往敵國和親癣朗。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353