Linux Keepalived雙機(jī)熱備

Keepalived是一個(gè)類似于layer3, 4 & 5交換機(jī)制的軟件吟吝,也就是我們平時(shí)說的第3層蚓胸、第4層和第5層交換厕九。Keepalived是自動(dòng)完成蓖捶,不需人工干涉。

本文詳細(xì)介紹使用keepalived實(shí)現(xiàn)最簡單的雙機(jī)熱備扁远,并使用Nginx進(jìn)行驗(yàn)證俊鱼。
環(huán)境:CentOS 7 64位刻像、Keepalived-1.2.18、Nginx-1.6.2并闲。


一细睡、虛擬機(jī)安裝
1、網(wǎng)絡(luò)設(shè)置

本文使用的是VMware Workstation 15 Player帝火,創(chuàng)建兩個(gè)虛擬機(jī)溜徙,分別命名為CentOS 7 64位 MCentOS 7 64位 B,M表示"master"主服務(wù)器犀填,B表示"backup"備用服務(wù)器蠢壹。
網(wǎng)絡(luò)連接選擇NAT模式,啟動(dòng)后使用ip add發(fā)現(xiàn)沒有自動(dòng)分配ip地址九巡,是因?yàn)镃entOS 7默認(rèn)是不啟動(dòng)網(wǎng)卡的知残,解決方法如下:

vi /etc/sysconfig/network-scripts/ifcfg-ens33

打開配置文件,把ONBOOT=no這一項(xiàng)改為ONBOOT=yes比庄,然后:wq保存退出求妹,然后重啟網(wǎng)絡(luò)服務(wù):

sudo service network restart

這時(shí)候再輸入ip add會(huì)發(fā)現(xiàn)ip地址有了。

本文Master ip為192.168.56.131佳窑,Bcakup ip為192.168.56.132制恍。
虛擬ip(vip)定義為192.168.56.188


二神凑、Nginx部署
1净神、安裝wget
yum -y install wget
2、下載并解壓Nginx
wget http://nginx.org/download/nginx-1.6.2.tar.gz
tar -zxvf nginx-1.6.2.tar.gz
3溉委、下載所需要的依賴庫文件
yum -y install pcre
yum -y install pcre-devel
yum -y install zlib
yum -y install zlib-devel
4鹃唯、配置

安裝gcc

yum -y install gcc

進(jìn)入nginx-1.6.2并執(zhí)行configure文件

cd nginx-1.6.2
./configure
5、編譯并安裝Nginx
make && make install

成功后會(huì)在/usr/local/nginx目錄下看到conf瓣喊、html坡慌、logs、sbin四個(gè)目錄藻三。

6洪橘、啟動(dòng)Nginx

啟動(dòng)命令:

/usr/local/nginx/sbin/nginx

停止命令:

/usr/local/nginx/sbin/nginx -s stop

重啟命令:

/usr/local/nginx/sbin/nginx -s reload

使用如下命令查看相關(guān)端口是否已啟動(dòng)Nginx

netstat -ano | grep 80
或
lsof -i:80

瀏覽器輸入Master的ip地址:http://192.168.56.131,出現(xiàn)Nginx的歡迎頁面即成功啟用Nginx棵帽。

同理熄求,Backup瀏覽器輸入:http://192.168.56.132,同樣出現(xiàn)Nginx的歡迎頁面逗概。

注意這個(gè)地方弟晚,html中最后一行"Thank you for using nginx."本文針對(duì)Master和Backup分別進(jìn)行了修改便于熱備時(shí)更好的區(qū)分服務(wù)是否切換成功,修改的文件在

/usr/local/nginx/html/index.html

如果啟動(dòng)成功,但進(jìn)入不了歡迎頁面卿城,則可能需要關(guān)閉firewalld防火墻:

systemctl stop firewalld.service
systemctl disable firewalld.service

三淑履、Keepalived安裝
1、下載并解壓Keepalived
wget http://www.keepalived.org/software/keepalived-1.2.18.tar.gz
tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/
2藻雪、安裝依賴軟件包openssl
yum install -y openssl openssl-devel
3秘噪、配置

進(jìn)入keepalived-1.2.18并執(zhí)行configure文件

cd keepalived-1.2.18
./configure --prefix=/usr/local/keepalived
4、編譯并安裝keepalived
make && make install
5勉耀、將keepalived安裝成Linux系統(tǒng)服務(wù)

/etc/目錄下創(chuàng)建keepalived文件夾

mkdir /etc/keepalived

將keepalived配置文件復(fù)制到/etc/keepalived下

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

將keepalived腳本文件復(fù)制到/etc/相關(guān)目錄下

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

創(chuàng)建keepalived軟鏈接

ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

設(shè)置開機(jī)啟動(dòng)

chkconfig keepalived on

安裝完畢指煎。


四、修改keepalived配置文件

進(jìn)入/etc/keepalived/目錄下打開keepalived.conf文件進(jìn)行修改

vi /etc/keepalived/keepalived.conf
1便斥、Master
! Configuration File for keepalived

global_defs {
    router_id localhost.localdomain ##標(biāo)識(shí)節(jié)點(diǎn)的字符串至壤,通常為hostname
}

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh" ##執(zhí)行腳本位置
    interval 2 ##檢測時(shí)間間隔
    weight -20 ## 如果條件成立則權(quán)重減20,這樣恢復(fù)時(shí)優(yōu)先級(jí)低于另一臺(tái)就會(huì)自動(dòng)變?yōu)锽ACKUP
}
## 定義虛擬路由 VI_1為自定義標(biāo)識(shí)枢纠。
vrrp_instance VI_1 {
    state MASTER   ## 主節(jié)點(diǎn)為MASTER像街,備份節(jié)點(diǎn)為BACKUP
    ## 接口設(shè)置 與本虛擬機(jī)ifconfig或ip address的接口相同
    interface ens33  
    virtual_router_id 131  ## 虛擬路由ID號(hào),兩臺(tái)虛擬機(jī)保證這個(gè)數(shù)字相同一致
    mcast_src_ip 192.168.56.131  ## 本機(jī)ip地址
    priority 100  ##優(yōu)先級(jí)配置(0-254的值)晋渺,數(shù)字越大等級(jí)越高
    nopreempt  ## 不搶占
    advert_int 1 ## 組播信息發(fā)送間隔镰绎,倆個(gè)節(jié)點(diǎn)必須配置一致,默認(rèn)1s
    authentication {  
        auth_type PASS ## vrrp協(xié)議 保證兩虛擬機(jī)一致
        auth_pass zxn ## 真實(shí)生產(chǎn)環(huán)境下對(duì)密碼進(jìn)行匹配
    }

    track_script {
        chk_nginx
    }

    virtual_ipaddress {
        192.168.56.188 ## 虛擬地址(vip)木西,可以指定多個(gè)
    }
}

2畴栖、Backup
! Configuration File for keepalived

global_defs {
    router_id zxn132 ##標(biāo)識(shí)節(jié)點(diǎn)的字符串,通常為hostname
}

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh" ##執(zhí)行腳本位置
    interval 2 ##檢測時(shí)間間隔
    weight -20 ## 如果條件成立則權(quán)重減20八千,這樣恢復(fù)時(shí)優(yōu)先級(jí)低于另一臺(tái)就會(huì)自動(dòng)變?yōu)锽ACKUP
}
## 定義虛擬路由 VI_1為自定義標(biāo)識(shí)吗讶。
vrrp_instance VI_1 {
    state BACKUP   ## 主節(jié)點(diǎn)為MASTER,備份節(jié)點(diǎn)為BACKUP
    ## 接口設(shè)置 與本虛擬機(jī)ifconfig或ip address的接口相同
    interface ens33  
    virtual_router_id 131  ## 虛擬路由ID號(hào)恋捆,兩臺(tái)虛擬機(jī)保證這個(gè)數(shù)字相同一致
    mcast_src_ip 192.168.56.132  ## 本機(jī)ip地址
    priority 90  ##優(yōu)先級(jí)配置(0-254的值)照皆,比MASTER少就行 
    nopreempt  ## 不搶占
    advert_int 1 ## 組播信息發(fā)送間隔,倆個(gè)節(jié)點(diǎn)必須配置一致沸停,默認(rèn)1s
    authentication {  
        auth_type PASS ## vrrp協(xié)議 保證兩虛擬機(jī)一致
        auth_pass zxn ## 真實(shí)生產(chǎn)環(huán)境下對(duì)密碼進(jìn)行匹配
    }

    track_script {
        chk_nginx
    }

    virtual_ipaddress {
        192.168.56.188 ## 虛擬地址(vip)膜毁,可以指定多個(gè)
    }
}

3、nginx_check.sh腳本

在/etc/keepalived/目錄下創(chuàng)建sh腳本文件

1星立、安裝nano

yum -y install nano

2爽茴、使用nano創(chuàng)建nginx_check.sh腳本

sudo nano nginx_check.sh

3葬凳、打開nginx_check.sh并編輯如下內(nèi)容

#!/bin/bash
# 如果進(jìn)程中沒有nginx則將keepalived進(jìn)程kill掉
A=`ps -C nginx --no-header |wc -l`      ## 查看是否有 nginx進(jìn)程 把值賦給變量A
if [ $A -eq 0 ];then                    ## 如果沒有進(jìn)程值得為零
    service keepalived stop             ## 則結(jié)束 keepalived 進(jìn)程
fi

(注意`符號(hào)绰垂,非'符號(hào))

4、腳本授權(quán)

chmod +x /etc/keepalived/nginx_check.sh

五火焰、啟動(dòng)Nginx和Keepalived

安裝并配置完畢后劲装,可以分別啟動(dòng)兩臺(tái)虛擬機(jī)上的Nginx和Keepalived進(jìn)行熱備的驗(yàn)證了。

啟動(dòng)Nginx:

/usr/local/nginx/sbin/nginx

啟動(dòng)Keepalived:

service keepalived start

關(guān)閉Keepalived:

service keepalived stop

查看nginx進(jìn)程:

ps -ef | grep nginx

查看keepalived進(jìn)程:

ps -ef | grep keepalived

分別啟動(dòng)Nginx和Keepalived后,Master輸入ip add查看ip多了一個(gè)192.168.56.188

打開瀏覽器輸入ip地址:http://192.168.56.188看到Nginx的歡迎頁面

此時(shí)nginx131說明為主節(jié)點(diǎn)占业。

然后我們將Keepalived關(guān)閉

service keepalived stop

或kill掉Nginx進(jìn)程绒怨,因?yàn)橛衝ginx_check.sh腳本會(huì)檢測如果沒有Nginx進(jìn)程運(yùn)行也會(huì)自動(dòng)將Keepalived關(guān)閉

ps -ef |grep nginx
kill xxxxx

會(huì)發(fā)現(xiàn),節(jié)點(diǎn)由Master切換到了Backup:

熱備成功谦疾。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末南蹂,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子念恍,更是在濱河造成了極大的恐慌六剥,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件峰伙,死亡現(xiàn)場離奇詭異疗疟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)瞳氓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門策彤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匣摘,你說我怎么就攤上這事店诗。” “怎么了音榜?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵必搞,是天一觀的道長。 經(jīng)常有香客問我囊咏,道長恕洲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任梅割,我火速辦了婚禮霜第,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘户辞。我一直安慰自己泌类,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布底燎。 她就那樣靜靜地躺著刃榨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪双仍。 梳的紋絲不亂的頭發(fā)上枢希,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音朱沃,去河邊找鬼苞轿。 笑死茅诱,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的搬卒。 我是一名探鬼主播瑟俭,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼契邀!你這毒婦竟也來了摆寄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤坯门,失蹤者是張志新(化名)和其女友劉穎椭迎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體田盈,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡畜号,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了允瞧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片简软。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖述暂,靈堂內(nèi)的尸體忽然破棺而出痹升,到底是詐尸還是另有隱情,我是刑警寧澤畦韭,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布疼蛾,位于F島的核電站,受9級(jí)特大地震影響艺配,放射性物質(zhì)發(fā)生泄漏察郁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一转唉、第九天 我趴在偏房一處隱蔽的房頂上張望皮钠。 院中可真熱鬧,春花似錦赠法、人聲如沸麦轰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽款侵。三九已至,卻和暖如春侧纯,著一層夾襖步出監(jiān)牢的瞬間新锈,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工茂蚓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留壕鹉,地道東北人剃幌。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓聋涨,卻偏偏與公主長得像晾浴,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子牍白,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355