溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

nginx中如何配置keepalived

發(fā)布時間:2021-07-30 14:08:54 來源:億速云 閱讀:176 作者:Leah 欄目:大數(shù)據(jù)

nginx中如何配置keepalived,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1.安裝nginx

2.安裝keepalived

3.nginx監(jiān)控腳本

#!/bin/sh
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
    /usr/local/nginx/sbin/nginx
    sleep 2
    B=`ps -C nginx --no-header |wc -l`
    if [ $B -eq 0 ]; then
        systemctl stop keepalived
    fi
fi

4.keepalived.conf  ( MASTER )

! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx.sh" 
    interval 2 
    weight -5 
    fall 3  
    rise 2 
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.2.213
    }
    track_script {
       	chk_nginx 
    }
}

virtual_server 192.168.2.213 443 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.2.211 80 {
        weight 1
        TCP_CHECK{
			connect_port 80
			retry 3
        }
    }
}

5.keepalived.conf ( BACKUP )

! Configuration File for keepalived

global_defs {
   router_id LVS_DEVEL
}

vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx.sh" 
    interval 2 
    weight -5 
    fall 3  
    rise 2 
}

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 {
        192.168.2.213
    }
    track_script {
       	chk_nginx 
    }
}

virtual_server 192.168.2.213 443 {
    delay_loop 6
    lb_algo rr
    lb_kind NAT
    persistence_timeout 50
    protocol TCP

    real_server 192.168.2.212 80 {
        weight 1
        TCP_CHECK{
			connect_port 80
			retry 3
        }
    }
}

6.配置選項說明

global_defs

  • notification_email : keepalived在發(fā)生諸如切換操作時需要發(fā)送email通知地址,后面的 smtp_server 相比也都知道是郵件服務(wù)器地址。也可以通過其它方式報警,畢竟郵件不是實時通知的。

  • router_id : 機器標(biāo)識,通??稍O(shè)為hostname。故障發(fā)生時,郵件通知會用到

vrrp_instance

  • state : 指定instance(Initial)的初始狀態(tài),就是說在配置好后,這臺服務(wù)器的初始狀態(tài)就是這里指定的,但這里指定的不算,還是得要通過競選通過優(yōu)先級來確定。如果這里設(shè)置為MASTER,但如若他的優(yōu)先級不及另外一臺,那么這臺在發(fā)送通告時,會發(fā)送自己的優(yōu)先級,另外一臺發(fā)現(xiàn)優(yōu)先級不如自己的高,那么他會就回搶占為MASTER

  • interface : 實例綁定的網(wǎng)卡,因為在配置虛擬IP的時候必須是在已有的網(wǎng)卡上添加的

  • mcast_src_ip : 發(fā)送多播數(shù)據(jù)包時的源IP地址,這里注意了,這里實際上就是在那個地址上發(fā)送VRRP通告,這個非常重要,一定要選擇穩(wěn)定的網(wǎng)卡端口來發(fā)送,這里相當(dāng)于heartbeat的心跳端口,如果沒有設(shè)置那么就用默認的綁定的網(wǎng)卡的IP,也就是interface指定的IP地址

  • virtual_router_id : 這里設(shè)置VRID,這里非常重要,相同的VRID為一個組,他將決定多播的MAC地址

  • priority : 設(shè)置本節(jié)點的優(yōu)先級,優(yōu)先級高的為master

  • advert_int : 檢查間隔,默認為1秒。這就是VRRP的定時器,MASTER每隔這樣一個時間間隔,就會發(fā)送一個advertisement報文以通知組內(nèi)其他路由器自己工作正常

  • authentication : 定義認證方式和密碼,主從必須一樣

  • virtual_ipaddress : 這里設(shè)置的就是VIP,也就是虛擬IP地址,他隨著state的變化而增加刪除,當(dāng)state為master的時候就添加,當(dāng)state為backup的時候刪除,這里主要是有優(yōu)先級來決定的,和state設(shè)置的值沒有多大關(guān)系,這里可以設(shè)置多個IP地址

  • track_script : 引用VRRP腳本,即在 vrrp_script 部分指定的名字。定期運行它們來改變優(yōu)先級,并最終引發(fā)主備切換。

vrrp_script
告訴 keepalived 在什么情況下切換,所以尤為重要??梢杂卸鄠€ vrrp_script

  • script : 自己寫的檢測腳本。也可以是一行命令如killall -0 nginx

  • interval 2 : 每2s檢測一次

  • weight -5 : 檢測失?。_本返回非0)則優(yōu)先級 -5

  • fall 2 : 檢測連續(xù) 2 次失敗才算確定是真失敗。會用weight減少優(yōu)先級(1-255之間)

  • rise 1 : 檢測 1 次成功就算成功。但不修改優(yōu)先級

關(guān)于nginx中如何配置keepalived問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI