您好,登錄后才能下訂單哦!
nginx中如何配置keepalived,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1.安裝nginx
2.安裝keepalived
3.nginx監控腳本
#!/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在發生諸如切換操作時需要發送email通知地址,后面的 smtp_server 相比也都知道是郵件服務器地址。也可以通過其它方式報警,畢竟郵件不是實時通知的。
router_id
: 機器標識,通常可設為hostname。故障發生時,郵件通知會用到
vrrp_instance
state
: 指定instance(Initial)的初始狀態,就是說在配置好后,這臺服務器的初始狀態就是這里指定的,但這里指定的不算,還是得要通過競選通過優先級來確定。如果這里設置為MASTER,但如若他的優先級不及另外一臺,那么這臺在發送通告時,會發送自己的優先級,另外一臺發現優先級不如自己的高,那么他會就回搶占為MASTER
interface
: 實例綁定的網卡,因為在配置虛擬IP的時候必須是在已有的網卡上添加的
mcast_src_ip
: 發送多播數據包時的源IP地址,這里注意了,這里實際上就是在那個地址上發送VRRP通告,這個非常重要,一定要選擇穩定的網卡端口來發送,這里相當于heartbeat的心跳端口,如果沒有設置那么就用默認的綁定的網卡的IP,也就是interface指定的IP地址
virtual_router_id
: 這里設置VRID,這里非常重要,相同的VRID為一個組,他將決定多播的MAC地址
priority
: 設置本節點的優先級,優先級高的為master
advert_int
: 檢查間隔,默認為1秒。這就是VRRP的定時器,MASTER每隔這樣一個時間間隔,就會發送一個advertisement報文以通知組內其他路由器自己工作正常
authentication
: 定義認證方式和密碼,主從必須一樣
virtual_ipaddress
: 這里設置的就是VIP,也就是虛擬IP地址,他隨著state的變化而增加刪除,當state為master的時候就添加,當state為backup的時候刪除,這里主要是有優先級來決定的,和state設置的值沒有多大關系,這里可以設置多個IP地址
track_script
: 引用VRRP腳本,即在 vrrp_script 部分指定的名字。定期運行它們來改變優先級,并最終引發主備切換。
vrrp_script
告訴 keepalived 在什么情況下切換,所以尤為重要。可以有多個 vrrp_script
script
: 自己寫的檢測腳本。也可以是一行命令如killall -0 nginx
interval 2
: 每2s檢測一次
weight -5
: 檢測失敗(腳本返回非0)則優先級 -5
fall 2
: 檢測連續 2 次失敗才算確定是真失敗。會用weight減少優先級(1-255之間)
rise 1
: 檢測 1 次成功就算成功。但不修改優先級
關于nginx中如何配置keepalived問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。