中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

keepalived實現nginx高可用

發布時間:2020-08-24 20:20:06 來源:腳本之家 閱讀:130 作者:逍遙無謂 欄目:服務器

keepalived直譯就是保持存活,在網絡里面就是保持在線了,也就是所謂的高可用或熱備,用來防止單點故障(單點故障是指一旦某一點出現故障就會導致整個系統架構的不可用)的發生,keepalived實現的基礎是vrrp,至于vrrp是什么請直接看這里vrrp,下面我們直接看應用吧。

keepalived使用

為了方便使用,寫了一個基于ubuntu 16.04 server 的一鍵配置腳本,配置使用相關就在腳本里見吧

#!/bin/bash
# nginx+keepalived 高可用一鍵腳本for ubuntu 16.04

if [ $# -ne 4 ]; then
 echo "USAGE: $0 [MASTER|BACKUP] priority interface virtual_ipaddress"
 exit 0
fi

echo -e 'Installing nginx'
apt-get install nginx -y > /dev/null 2<&1

echo -e 'Installing keepalived'
apt-get install keepalived -y > /dev/null 2<&1

echo -e 'Configuring keepalived'
if [ ! -e /etc/keepalived ];then
 mkdir /etc/keepalived
fi
cat > /etc/keepalived/keepalived.conf <<EOF
! Configuration File for keepalived
global_defs {
 notification_email {
  chencheng199211@gmail.com
 }
 notification_email_from email #表示發送通知郵件時郵件源地址是誰
 smtp_server 127.0.0.1 #表示發送email時使用的smtp服務器地址,這里可以用本地的sendmail來實現
 smtp_connect_timeout 30
 router_id master #機器標識
}
vrrp_script chk_nginx {
 script "/etc/keepalived/check_nginx.sh"
 interval 2 #腳本執行間隔,單位秒
 weight -5 #腳本結果導致的優先級變更:10表示優先級+10;-10則表示優先級-10
 fall 3
 rise 2
}

vrrp_instance VI_1 {
 state $1 #state指定instance(Initial)的初始狀態,就是說在配置好后,這臺服務器的初始狀態就是這里指定的,但這里指定的不算,還是得要通過競選通過優先級來確定,里如果這里設置為master,但如若他的優先級不及另外一臺,那么這臺在發送通告時,會發送自己的優先級,另外一臺發現優先級不如自己的高,那么他會就回搶占為master
 interface $3 #實例綁定的網卡,因為在配置虛擬IP的時候必須是在已有的網卡上添加的
 virtual_router_id 51 #這里設置VRID,這里非常重要,相同的VRID為一個組,他將決定多播的MAC地址
 priority $2 #設置本節點的優先級,優先級高的為master
 advert_int 2 #檢查間隔,默認為1秒
 authentication { #這里設置認證
  auth_type PASS #認證方式,可以是PASS或AH兩種認證方式
  auth_pass 1111 #認證密碼
 }
 virtual_ipaddress { #這里設置的就是VIP,也就是虛擬IP地址,他隨著state的變化而增加刪除,當state為master的時候就添加,當state為backup的時候刪除,這里主要是有優先級來決定的,和state設置的值沒有多大關系,這里可以設置多個IP地址
  $4
 }
 track_script {
  chk_nginx
 }

 #dont_track_primary:忽略VRRP的interface錯誤
 #track_interface:跟蹤接口,設置額外的監控,里面任意一塊網卡出現問題,都會進入故障(FAULT)狀態,例如,用nginx做均衡器的時候,內網必須正常工作,如果內網出問題了,這個均衡器也就無法運作了,所以必須對內外網同時做健康檢查
 #mcast_src_ip:發送多播數據包時的源IP地址,這里注意了,這里實際上就是在那個地址上發送VRRP通告,這個非常重要,一定要選擇穩定的網卡端口來發送,這里相當于heartbeat的心跳端口,如果沒有設置那么就用默認的綁定的網卡的IP,也就是interface指定的IP地址
 #garp_master_delay:在切換到master狀態后,延遲進行免費的ARP(gratuitous ARP)請求
 #virtual_routes:原理和virtual ipaddress一樣,只不過這里是增加和刪除路由
 #lvs_sync_daemon_interface:lvs syncd綁定的網卡
 #nopreempt:設置不搶占,這里只能設置在state為backup的節點上,而且這個節點的優先級必須別另外的高。當主mysql恢復后不搶占資源
 #preempt_delay:搶占延遲
 #debug:debug級別
 #notify_master:表示當切換到master狀態時,要執行的腳本
 #notify_backup:表示當切換到backup狀態時,要執行的腳本
 #notify_fault:
}
EOF

cat > /etc/keepalived/check_nginx.sh <<EOF
#!/bin/bash
# description:
# 定時查看nginx是否存在,如果不存在則啟動nginx
# 如果啟動失敗,則停止keepalived
status=$(ps -C nginx --no-heading | wc -l)
if [ "${status}" = "0" ]; then
  service nginx start
  sleep 2
  status2=$(ps -C nginx --no-heading | wc -l)
  if [ "${status2}" = "0" ]; then
    /etc/init.d/keepalived stop
  fi
fi
EOF

echo -e "enable boot and starting"
service keepalived start
service nginx start

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

原平市| 沭阳县| 巴东县| 绵阳市| 桐城市| 育儿| 武隆县| 乐清市| 巴马| 新乡市| 灵武市| 桐乡市| 封开县| 玉门市| 故城县| 溧阳市| 武汉市| 南乐县| 连平县| 彝良县| 阿拉尔市| 温宿县| 皋兰县| 舟山市| 兰西县| 郑州市| 集安市| 奉贤区| 阜新| 自治县| 乐业县| 昌图县| 满城县| 会泽县| 洞头县| 西和县| 宜春市| 木里| 青阳县| 临潭县| 孙吴县|