keepalived補充

一脂矫、keepalived基于服務器nginx掛了,不會自動切換

1.1 書寫腳本(時刻檢查nginx的狀態(tài)霉晕,如果nginx關閉庭再,keepalived也關閉)

[root@lb01 /server/scripts]# cat check-ngx.sh 
#!/bin/bash

count=`ps -ef|grep nginx|grep -v grep|wc -l`

if [ $count -eq 0 ];then 
  systemctl stop keepalived
fi

注:腳本名字不要包含監(jiān)控對象的名字

1.2 通過keepalived運行檢查nginx服務的腳本

1>給腳本check-ngx.sh 一個執(zhí)行權(quán)限

[root@lb01 ~]#  chmod +x /server/scripts/check-ngx.sh
[root@lb01 ~]# ll /server/scripts/check-ngx.sh 
-rwxr-xr-x 1 root root 116 Jun 17 09:15 /server/scripts/check-ngx.sh
[root@lb01 ~]# 

1.3 配置keepalived

[root@lb01 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
……
vrrp_script check_ngx {
   script  /server/scripts/check-ngx.sh
   interval  2
   weight  1
}

vrrp_instance VI_1 {
    ……
    track_script{
        check_ngx
    }
}
[root@lb01 ~]# 

image

1.4 重啟keepalived

systemctl restart keepalived.service

1.5測試

\\lb01上
[root@lb01 ~]# ip a|grep 0.3
    inet 10.0.0.3/24 scope global secondary eth0:1
[root@lb01 ~]# systemctl stop nginx
[root@lb01 ~]# ip a|grep 0.3
[root@lb01 ~]#                                            \\\虛擬ip飄逸走了

\\lb02上
[root@lb02 ~]# ip a|grep 0.3
    inet 10.0.0.3/24 scope global secondary eth0:1

\\\回到lb01上
[root@lb01 ~]# systemctl start nginx
[root@lb01 ~]# ip a|grep 0.3
[root@lb01 ~]# systemctl start keepalived.service 
[root@lb01 ~]# ip a|grep 0.3   \\虛擬IP自動飄逸回來
    inet 10.0.0.3/24 scope global secondary eth0:1

二捞奕、keepalived雙主模式

目的:減輕負載均衡的壓力

image

2.1 keepalived雙主模式配置

image

分別重啟keepalived服務

\\\lb01
[root@lb01 /etc/keepalived]# systemctl restart keepalived.service [root@lb01 /etc/keepalived]# ip a |egrep "0.3|0.4"
    inet 10.0.0.3/24 scope global secondary eth0:1

\\\\lb02
[root@lb02 /etc/keepalived]# systemctl restart keepalived.service [root@lb02 /etc/keepalived]# ip a |egrep "0.3|0.4"

keepalived雙主模式配置

\\\\lb01的keepalived雙主配置文件
! Configuration File for keepalived

global_defs {
    router_id lb01
}
vrrp_script jiancha {
script "/server/scripts/jiancha.sh"
interval 2
weight 1
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
     10.0.0.3/24 dev eth0 label eth0:1  
    }
    track_script {
    jiancha
    }
}
vrrp_instance VI_2 {
    state BACKUP
    interface eth0
    virtual_router_id 52
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
     10.0.0.4/24 dev eth0 label eth0:2
    }
}

\\\\\\\lb02的keepalived雙主配置文件
! Configuration File for keepalived

global_defs {
    router_id lb02
}

vrrp_instance VI_1 {   
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
     10.0.0.3/24 dev eth0 label eth0:1  
    }
}
vrrp_instance VI_2 {
    state MASTER
    interface eth0
    virtual_router_id 52
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
     10.0.0.4/24 dev eth0 label eth0:2
    }
}

讓lb01和lb02的nginx配置文件相同

vim /etc/nginx/nginx.conf  :

     upstream  web_pools {
     server 10.0.0.7:80 weight=1 max_fails=3 fail_timeout=10s;
     server 10.0.0.8:80 weight=1 max_fails=3 fail_timeout=10s;
     }
#    include /etc/nginx/conf.d/*.conf;
     server {
     listen 80;
     server_name www.oldboy.com;
     location / {
         proxy_pass http://web_pools;
         proxy_set_header Host $host;
         proxy_set_header X-Forwarded-For $remote_addr; 
        }
     }
     server {
     listen 80;
     server_name blog.oldboy.com;
     location / {
         proxy_pass http://web_pools;
         proxy_set_header Host $host;
         proxy_set_header X-Forwarded-For $remote_addr;
        }
     }

2.1 在命令行curl測試是否正常

\\\lb01
[root@lb01 ~]# curl 10.0.0.3
web02 www.oldboy.com
[root@lb01 ~]# curl 10.0.0.3
web01 www.oldboy.com
[root@lb01 ~]# curl 10.0.0.4
web02 www.oldboy.com
[root@lb01 ~]# curl 10.0.0.4
web01 www.oldboy.com
[root@lb01 ~]# 

\\\lb02
[root@lb02 ~]# curl 10.0.0.3
web02 www.oldboy.com
[root@lb02 ~]# curl 10.0.0.3
web01 www.oldboy.com
[root@lb02 ~]# curl 10.0.0.4
web02 www.oldboy.com
[root@lb02 ~]# curl 10.0.0.4
web01 www.oldboy.com
[root@lb02 ~]#

2.1 在瀏覽器進行測試

1>先在Windows本地hosts文件中配置解析

10.0.0.3 www.oldboy.com
10.0.0.4 blog.oldboy.com

2>瀏覽器測試

image

2.1 測試高可用是否正常

假如將其中1臺lb01關機,然后測試www.oldboy.comblog.oldboy.com在瀏覽器是否還能正常顯示

三拄轻、每個域名綁定對應ip

3.1 修改nginx配置

image

3.2 重啟服務

重啟服務報Cannot assign requested address的錯誤
nginx無法把本地不存在的ip地址進行綁定

[root@lb01 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] bind() to 10.0.0.7:80 failed (99: Cannot assign requested address)   \\不能分配的請求ip地址
nginx: configuration file /etc/nginx/nginx.conf test failed

解決:修改內(nèi)核參數(shù)
在/etc/sysctl.conf文件中颅围,追加net.ipv4.ip_nonlocal_bind = 1
內(nèi)核生效:sysctl -p

[root@lb01 ~]# cat  /etc/sysctl.conf 
……
net.ipv4.ip_nonlocal_bind = 1
[root@lb01 ~]# sysctl -p
net.ipv4.ip_nonlocal_bind = 1
[root@lb01 ~]# 

注:執(zhí)行net.ipv4.ip_nonlocal_bind = 1,背后修改了哪里恨搓?

[root@lb01 ~]# #net.ipv4.ip_nonlocal_bind
[root@lb01 ~]# # /proc/sys/ 
[root@lb01 ~]# #net.ipv4.ip_nonlocal_bind
[root@lb01 ~]# cat /proc/sys/net/ipv4/ip_nonlocal_bind  \\修改的是這里
1

四院促、keepalived高可用故障案例

腦裂/裂腦

原因:
??1>SELinux/防火墻可以開啟
??2>高可用服務器對之間心跳線鏈路故障,導致無法正常通信
??3>高可用服務器對上心跳網(wǎng)卡地址等信息配置不正確斧抱,導致發(fā)送心跳失敗常拓。

解決:
??1>兩條心跳線路
??2>只要備任務主掛了,我讓你直接掛了
??3>書寫一個腳本辉浦,發(fā)送腦裂發(fā)送郵件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末墩邀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子盏浙,更是在濱河造成了極大的恐慌眉睹,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件废膘,死亡現(xiàn)場離奇詭異竹海,居然都是意外死亡,警方通過查閱死者的電腦和手機丐黄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門斋配,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人灌闺,你說我怎么就攤上這事艰争。” “怎么了桂对?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵甩卓,是天一觀的道長。 經(jīng)常有香客問我蕉斜,道長逾柿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任宅此,我火速辦了婚禮机错,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘父腕。我一直安慰自己弱匪,他們只是感情好,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布璧亮。 她就那樣靜靜地躺著萧诫,像睡著了一般斥难。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上财搁,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天蘸炸,我揣著相機與錄音躬络,去河邊找鬼尖奔。 笑死,一個胖子當著我的面吹牛穷当,可吹牛的內(nèi)容都是我干的提茁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼馁菜,長吁一口氣:“原來是場噩夢啊……” “哼茴扁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起汪疮,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤峭火,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后智嚷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卖丸,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年盏道,在試婚紗的時候發(fā)現(xiàn)自己被綠了稍浆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡猜嘱,死狀恐怖衅枫,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情朗伶,我是刑警寧澤弦撩,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站论皆,受9級特大地震影響孤钦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纯丸,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一偏形、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧觉鼻,春花似錦俊扭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捐康。三九已至,卻和暖如春庸蔼,著一層夾襖步出監(jiān)牢的瞬間解总,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工姐仅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留花枫,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓掏膏,卻偏偏與公主長得像劳翰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子馒疹,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348