Nginx+keepalived高可用配置實戰(內附彩蛋)


1、整體架構圖如下

 

2、環境准備

今天所配置的是keepalived+nginx 的負載均衡

下載keepalived軟件

[root@LB01 tools]# wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz

注意安裝前檢查內核的link文件

root@LB02 tools]# ll /usr/src/

total 8

drwxr-xr-x. 2 root root 4096 Sep 23  2011 debug

drwxr-xr-x. 3 root root 4096 Oct 19 02:03 kernels

lrwxrwxrwx. 1 root root 43 Oct 19 02:05 linux -> /usr/src/kernels/2.6.32-642.6.1.el6.x86_64/

安裝keepalived之前,安裝幾個依賴包

yum install openssl-devel -y

yum install popt* -y

然后進行編譯安裝keepalived,前面介紹了安裝過程,這里就不演示了

./configure得出下面的結果

Keepalived configuration

------------------------

Keepalived version    : 1.1.17

Compiler         : gcc

Compiler        : -g -O2

Extra Lib      : -lpopt -lssl -lcrypto

Use IPVS Framework   : Yes

IPVS sync daemon support : Yes

Use VRRP Framework    : Yes

Use LinkWatch      : No

Use Debug flags     : No

注意./configure之后的結果,沒有錯誤就可以了

make && make install

之后規范配置、啟動文件路徑

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

/bin/cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

mkdir /etc/keepalived -p

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

/bin/cp /usr/local/sbin/keepalived /usr/sbin/

/etc/init.d/keepalived start

注:nginx負載均衡相關配置請參考前面的文章

LNMP架構應用實戰—Nginx反向代理負載均衡配置

 

3、實戰配置keepalived

[root@LB01 keepalived]# vi keepalived.conf 

! Configuration File for keepalived 

global_defs {

   notification_email {

   abc@qq.com

   }

   notification_email_from Alexandre.Cassen@firewall.loc

   smtp_server 1.1.1.1

   smtp_connect_timeout 30

   router_id LVS_3

}

vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 19

    priority 150

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.1.254/24

    }

}

[root@LB02 keepalived]# vi keepalived.conf

! Configuration File for keepalived

global_defs {

   notification_email {

   abc@qq.com

   }

   notification_email_from Alexandre.Cassen@firewall.loc

   smtp_server 1.1.1.1

   smtp_connect_timeout 30

   router_id LVS_6

}

vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 19

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.1.254/24

    }

}

[root@LB01 keepalived]# /etc/init.d/keepalived start

Starting keepalived:    [  OK  ]

[root@LB02 keepalived]# /etc/init.d/keepalived start

Starting keepalived    [  OK  ]

[root@LB01 keepalived]# ip add|grep 192.168.1.254

    inet 192.168.1.254/24 scope global secondary eth0

[root@LB02 keepalived]# ip add|grep 192.168.1.254

測試訪問

表明可以正常切換

 

現在我們模擬keepalived主宕機,再測試

[root@LB01 conf]# /etc/init.d/keepalived stop

Stopping keepalived:   [  OK  ]

[root@LB02 ~]# ip add|grep 254

    inet 192.168.1.254/24 scope global secondary eth0

 

4、反向代理服務故障自動切換

如果實際生產環境中當keeplived主的服務器nginx服務宕機,但是主又有VIP,這時就出現無法訪問的現象,因此可以做如下的配置,使得這種情況可自已切換

vi check_nginx.sh

#!/bin/sh

white true

do

PNUM=`ps -ef|grep nginx|wc -l`

#這里也可使用nmap 192.168.1.3 -p 80|grep open|wc -l來判斷個數

if [ $PNUM -lt 3 ];then

/etc/init.d/keepalived stop >/dec/null 2>&1

kill -9 keealived >/dec/null 2>&1

kill -9 keealived >/dec/null 2>&1

fi

sleep 5

done

sh check_nginx.sh &

啟動個守護進程進行檢查(或者加入定時任務定時執行檢查),如果nginx服務出現故障,就立馬停掉keepalived的服務,讓它自動切換到備節點上去,這樣就實現了自動切換的工作

 

  

粉絲福利來了 

請看下文

農歷新年即將到來,物質生活是好了,但是我們的思想食糧也不能落后啊,這不,民工哥這次聯合——華章科技

華章科技成立於1995年,是機械工業出版社華章公司創立最早的子品牌,專注於為計算機、電子工程等IT領域的專業讀者提供學習解決方案。

為各位粉絲們帶來了新年的福利

 

跟老男孩學Linux運維系列

資深運維架構實戰專家及教育培訓界頂尖專家十多年的運維實戰經驗總結

跟老男孩學Linux運維:核心系統命令實戰

本書是一本較完整的、偏重實戰的Linux命令圖書,並非大而全而是小而精,很多命令講解均取之於企業中解決問題的實戰案例,並結合老男孩十幾年的運維工作和教學工作進行了梳理。

 

 

跟老男孩學Linux運維:Shell編程實戰

本書全面系統地講解運維工作中Shell編程所需的知識點和Shell編程的各種企業級案例。實戰性強,不僅講解了Shell編程所涉及的各種核心技術點,還運用Shell編程針對整個企業網站集群架構中的多個網絡服務進行了部署、優化、自動化運維及監控等環節的實踐,並指導你細致掌握Shell編程的運維規范和方法。

 

跟老男孩學Linux運維:Web集群實戰

本書系統講解網站集群架構的框架模型以及各個節點的企業級搭建和優化。實戰性強,不僅講解了Web集群所涉及的各種技術,還針對整個集群中的每個網絡服務節點給出解決方案,並指導你細致掌握Web集群的運維規范和方法。

 

購書鏈接:https://item.jd.com/12274751.html

送書規則如下

1、長按下方小程序掃碼參與抽獎送出一本(核心系統命令)

2、在文未寫出您與運維工作相愛相殺的故事,精選留言點贊第一名送出一本(shell編程實戰)

3、在精選留言中隨機選出一名幸運讀者送出一本(WEB集群實戰)

4、獲獎的小伙伴在一個工作日內在公眾號后台發送 手機號+姓名+收貨地址,逾期則自動視為放棄

5、本次活動僅限公眾號讀者參加(留言越精彩越有機會被精選)

6、活動截止時間2018年2月2日12:30

需要參與活動的小伙伴可關注公眾號在相關的文章后參加送書活動


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM