keepalived nginx 主備配置(多主多備同理)


keepalived  nginx 主備配置(多主多備同理)

1.Nginx服務安裝

  nginx 不區分主備,在兩台服務上安裝兩個即可。

  安裝參考:https://www.cnblogs.com/zwcry/p/9454647.html

2.Keepalived服務安裝

  keepalived 區分主備、多主多備的。

  keepalived 多主多備 是把 單主單備 復制多份,調下優先級配置即可。

  安裝參考:https://www.cnblogs.com/zwcry/p/9542867.html

  主備配置參考:https://www.cnblogs.com/zwcry/p/9549756.html

3.環境描述

  兩台服務器(已按照1、2教程安裝)

  IP.192.168.159.129

    nginx 已安裝

    keepalived 已安裝

  IP.192.168.159.130

    nginx 已安裝

    keepalived 已安裝

4.修改keepalived.conf配置

  192.168.159.129 (主)keepalived.conf

   cd /etc/keepalived/  #進入默認配置目錄

  vim keepalived.conf  #編輯配置信息

  謹記:該配置慎用空格,可以使用TAB或回車排版,空格會被識別為賦值,導致keepalived運行失敗

   修改為如下內容

復制代碼
! Configuration File for keepalived

vrrp_script chk_nginx {#虛擬路由沉余協議腳本
	script "/etc/keepalived/script/nginx_chk.sh"#執行腳本 該腳本權限必須是可以執行的X
	interval 2#上面的腳本沒兩秒執行一次
	weight 0#權重  0為不變
}

vrrp_instance VI_1 {
	state MASTER#兩個值(主:MASTER  備:BACKUP),必須大寫
	interface ens33#網卡接口,ip a查看,上面主備搭建教程有講
	virtual_router_id 51#虛擬路由ID,主備或多主多備,需要全部設置一樣
	priority 101#優先級,越高越優先使用該服務
	advert_int 1#多個keepalived的通訊檢測間隔,單位秒
	authentication {#認證類型與密碼,主備或多主多備需要設置一樣
		auth_type PASS
		auth_pass 1111
  }

	track_script {#執行腳本
		chk_nginx#上面定義的vrrp_script chk_nginx
	}

	virtual_ipaddress {
		192.168.159.110#定義虛擬IP,換行可以定義多個
	}
}
復制代碼

  192.168.159.130(備) keepalived.conf

  cd /etc/keepalived/  #進入默認配置目錄

  vim keepalived.conf  #編輯配置信息

  謹記:該配置慎用空格,可以使用TAB或回車排版,空格會被識別為賦值,導致keepalived運行失敗  

   修改為以下內容

復制代碼
! Configuration File for keepalived

vrrp_script chk_nginx {#虛擬路由沉余協議腳本
	script "/etc/keepalived/script/nginx_chk.sh"#執行腳本 該腳本權限必須是可以執行的X
	interval 2#上面的腳本沒兩秒執行一次
	weight 0#權重  0為不變
}

vrrp_instance VI_1 {
	state BACKUP#兩個值(主:MASTER  備:BACKUP),必須大寫
	interface ens33#網卡接口,ip a查看,上面主備搭建教程有講
	virtual_router_id 51#虛擬路由ID,主備或多主多備,需要全部設置一樣
	priority 100#優先級,越高越優先使用該服務
	advert_int 1#多個keepalived的通訊檢測間隔,單位秒
	authentication {#認證類型與密碼,主備或多主多備需要設置一樣
		auth_type PASS
		auth_pass 1111
  }

	track_script {#執行腳本
		chk_nginx#上面定義的vrrp_script chk_nginx
	}

	virtual_ipaddress {
		192.168.159.110#定義虛擬IP,換行可以定義多個
	}
}
復制代碼

5.編寫vrrp_script  nginx_chk.sh腳本(該腳本必須有執行權限)

  192.168.159.129(主)nginx_chk.sh

    cd /etc/keepalived/script/  #無目錄,自己創建

    vim nginx_chk.sh  編輯腳本

    添加如下內容

復制代碼
#!/bin/bash
if [ "$(ps -C nginx --no-heading|wc -l)" = "0" ]; then
    /usr/local/nginx/sbin/nginx
    sleep 2
    if [ "$(ps -C nginx --no-heading|wc -l)" = "0" ]; then
        /etc/init.d/keepalived stop
    fi
fi
復制代碼

保存

chmod 775 nginx_chk.sh  #賦值執行權限 

  192.168.159.130(備) nginx_chk.sh

    cd /etc/keepalived/script/  #無目錄,自己創建

    vim nginx_chk.sh  編輯腳本

    添加如下內容

復制代碼
#!/bin/bash
if [ "$(ps -C nginx --no-heading|wc -l)" = "0" ]; then
    /usr/local/nginx/sbin/nginx
    sleep 2
    if [ "$(ps -C nginx --no-heading|wc -l)" = "0" ]; then
        /etc/init.d/keepalived stop
    fi
fi
復制代碼

保存

chmod 775 nginx_chk.sh  #賦值執行權限 

6.測試

  1)停止nginx,nginx自動重啟成功

    

 

  2)停止主keepalived,虛擬IP自動切換至備keepalived

    

    

    

 

  3)訪問虛擬IP自動跳轉至nginx

    

 

  4)其他測試不演練了

注:Keepavlied不影響Nginx服務,Keepalived運行狀態或非運行狀態,Nginx該怎樣還是怎樣。

  Keepalied只是配合lvs將訪問虛擬IP的請求,轉發到虛擬IP所在服務器上。而這台服務器上的Nginx監聽到后,再做應用層的請求轉發。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM