nginx中如何配置keepalived,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
成都創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為興賓等服務(wù)建站,興賓等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為興賓企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
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.配置選項(xiàng)說明
global_defs
notification_email
: keepalived在發(fā)生諸如切換操作時(shí)需要發(fā)送email通知地址,后面的 smtp_server 相比也都知道是郵件服務(wù)器地址。也可以通過其它方式報(bào)警,畢竟郵件不是實(shí)時(shí)通知的。
router_id
: 機(jī)器標(biāo)識,通??稍O(shè)為hostname。故障發(fā)生時(shí),郵件通知會用到
vrrp_instance
state
: 指定instance(Initial)的初始狀態(tài),就是說在配置好后,這臺服務(wù)器的初始狀態(tài)就是這里指定的,但這里指定的不算,還是得要通過競選通過優(yōu)先級來確定。如果這里設(shè)置為MASTER,但如若他的優(yōu)先級不及另外一臺,那么這臺在發(fā)送通告時(shí),會發(fā)送自己的優(yōu)先級,另外一臺發(fā)現(xiàn)優(yōu)先級不如自己的高,那么他會就回?fù)屨紴镸ASTER
interface
: 實(shí)例綁定的網(wǎng)卡,因?yàn)樵谂渲锰摂MIP的時(shí)候必須是在已有的網(wǎng)卡上添加的
mcast_src_ip
: 發(fā)送多播數(shù)據(jù)包時(shí)的源IP地址,這里注意了,這里實(shí)際上就是在那個(gè)地址上發(fā)送VRRP通告,這個(gè)非常重要,一定要選擇穩(wěn)定的網(wǎng)卡端口來發(fā)送,這里相當(dāng)于heartbeat的心跳端口,如果沒有設(shè)置那么就用默認(rèn)的綁定的網(wǎng)卡的IP,也就是interface指定的IP地址
virtual_router_id
: 這里設(shè)置VRID,這里非常重要,相同的VRID為一個(gè)組,他將決定多播的MAC地址
priority
: 設(shè)置本節(jié)點(diǎn)的優(yōu)先級,優(yōu)先級高的為master
advert_int
: 檢查間隔,默認(rèn)為1秒。這就是VRRP的定時(shí)器,MASTER每隔這樣一個(gè)時(shí)間間隔,就會發(fā)送一個(gè)advertisement報(bào)文以通知組內(nèi)其他路由器自己工作正常
authentication
: 定義認(rèn)證方式和密碼,主從必須一樣
virtual_ipaddress
: 這里設(shè)置的就是VIP,也就是虛擬IP地址,他隨著state的變化而增加刪除,當(dāng)state為master的時(shí)候就添加,當(dāng)state為backup的時(shí)候刪除,這里主要是有優(yōu)先級來決定的,和state設(shè)置的值沒有多大關(guān)系,這里可以設(shè)置多個(gè)IP地址
track_script
: 引用VRRP腳本,即在 vrrp_script 部分指定的名字。定期運(yùn)行它們來改變優(yōu)先級,并最終引發(fā)主備切換。
vrrp_script
告訴 keepalived 在什么情況下切換,所以尤為重要??梢杂卸鄠€(gè) 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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。