• 
    

      <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
      1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>

        keepalived實(shí)現(xiàn)nginx高可用-創(chuàng)新互聯(lián)

        keepalived直譯就是保持存活,在網(wǎng)絡(luò)里面就是保持在線了,也就是所謂的高可用或熱備,用來防止單點(diǎn)故障(單點(diǎn)故障是指一旦某一點(diǎn)出現(xiàn)故障就會(huì)導(dǎo)致整個(gè)系統(tǒng)架構(gòu)的不可用)的發(fā)生,keepalived實(shí)現(xiàn)的基礎(chǔ)是vrrp,至于vrrp是什么請(qǐng)直接看這里vrrp,下面我們直接看應(yīng)用吧。

        專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)臨朐免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近1000家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

        keepalived使用


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

        #!/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 {
          [email protected]
         }
         notification_email_from email #表示發(fā)送通知郵件時(shí)郵件源地址是誰
         smtp_server 127.0.0.1 #表示發(fā)送email時(shí)使用的smtp服務(wù)器地址,這里可以用本地的sendmail來實(shí)現(xiàn)
         smtp_connect_timeout 30
         router_id master #機(jī)器標(biāo)識(shí)
        }
        vrrp_script chk_nginx {
         script "/etc/keepalived/check_nginx.sh"
         interval 2 #腳本執(zhí)行間隔,單位秒
         weight -5 #腳本結(jié)果導(dǎo)致的優(yōu)先級(jí)變更:10表示優(yōu)先級(jí)+10;-10則表示優(yōu)先級(jí)-10
         fall 3
         rise 2
        }
        
        vrrp_instance VI_1 {
         state $1 #state指定instance(Initial)的初始狀態(tài),就是說在配置好后,這臺(tái)服務(wù)器的初始狀態(tài)就是這里指定的,但這里指定的不算,還是得要通過競選通過優(yōu)先級(jí)來確定,里如果這里設(shè)置為master,但如若他的優(yōu)先級(jí)不及另外一臺(tái),那么這臺(tái)在發(fā)送通告時(shí),會(huì)發(fā)送自己的優(yōu)先級(jí),另外一臺(tái)發(fā)現(xiàn)優(yōu)先級(jí)不如自己的高,那么他會(huì)就回?fù)屨紴閙aster
         interface $3 #實(shí)例綁定的網(wǎng)卡,因?yàn)樵谂渲锰摂MIP的時(shí)候必須是在已有的網(wǎng)卡上添加的
         virtual_router_id 51 #這里設(shè)置VRID,這里非常重要,相同的VRID為一個(gè)組,他將決定多播的MAC地址
         priority $2 #設(shè)置本節(jié)點(diǎn)的優(yōu)先級(jí),優(yōu)先級(jí)高的為master
         advert_int 2 #檢查間隔,默認(rèn)為1秒
         authentication { #這里設(shè)置認(rèn)證
          auth_type PASS #認(rèn)證方式,可以是PASS或AH兩種認(rèn)證方式
          auth_pass 1111 #認(rèn)證密碼
         }
         virtual_ipaddress { #這里設(shè)置的就是VIP,也就是虛擬IP地址,他隨著state的變化而增加刪除,當(dāng)state為master的時(shí)候就添加,當(dāng)state為backup的時(shí)候刪除,這里主要是有優(yōu)先級(jí)來決定的,和state設(shè)置的值沒有多大關(guān)系,這里可以設(shè)置多個(gè)IP地址
          $4
         }
         track_script {
          chk_nginx
         }
        
         #dont_track_primary:忽略VRRP的interface錯(cuò)誤
         #track_interface:跟蹤接口,設(shè)置額外的監(jiān)控,里面任意一塊網(wǎng)卡出現(xiàn)問題,都會(huì)進(jìn)入故障(FAULT)狀態(tài),例如,用nginx做均衡器的時(shí)候,內(nèi)網(wǎng)必須正常工作,如果內(nèi)網(wǎng)出問題了,這個(gè)均衡器也就無法運(yùn)作了,所以必須對(duì)內(nèi)外網(wǎng)同時(shí)做健康檢查
         #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地址
         #garp_master_delay:在切換到master狀態(tài)后,延遲進(jìn)行免費(fèi)的ARP(gratuitous ARP)請(qǐng)求
         #virtual_routes:原理和virtual ipaddress一樣,只不過這里是增加和刪除路由
         #lvs_sync_daemon_interface:lvs syncd綁定的網(wǎng)卡
         #nopreempt:設(shè)置不搶占,這里只能設(shè)置在state為backup的節(jié)點(diǎn)上,而且這個(gè)節(jié)點(diǎn)的優(yōu)先級(jí)必須別另外的高。當(dāng)主mysql恢復(fù)后不搶占資源
         #preempt_delay:搶占延遲
         #debug:debug級(jí)別
         #notify_master:表示當(dāng)切換到master狀態(tài)時(shí),要執(zhí)行的腳本
         #notify_backup:表示當(dāng)切換到backup狀態(tài)時(shí),要執(zhí)行的腳本
         #notify_fault:
        }
        EOF
        
        cat > /etc/keepalived/check_nginx.sh <<EOF
        #!/bin/bash
        # description:
        # 定時(shí)查看nginx是否存在,如果不存在則啟動(dòng)nginx
        # 如果啟動(dòng)失敗,則停止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
        

        名稱欄目:keepalived實(shí)現(xiàn)nginx高可用-創(chuàng)新互聯(lián)
        標(biāo)題網(wǎng)址:http://www.jbt999.com/article32/shepc.html

        成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、網(wǎng)站設(shè)計(jì)公司網(wǎng)站制作、營銷型網(wǎng)站建設(shè)靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站

        廣告

        聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

        成都做網(wǎng)站

      2. 
        

          <address id="upfr9"><pre id="upfr9"><strike id="upfr9"></strike></pre></address>
          1. <address id="upfr9"><tr id="upfr9"></tr></address><dl id="upfr9"></dl>
            久久久三级电影 | 男人天堂久草视频 | 午夜黄色视频在线观看 | 一区二区三区无码区 | 爱久在线视频91 | 成人MV在线 | seseseseavse | 色四月婷婷网五月天 | 麻豆成人免费在线观看了 | 最新无码在线 |