Nginx學習筆記(六)nginx高可用

nginx高可用

存在的問題

如果 nginx 宕機了,則請求將實現不了效果

在這裏插入圖片描述

解決方案:高可用

在這裏插入圖片描述

條件:
(1)需要至少兩臺 nginx 服務器
(2)需要 keepalived(監控nginx是否可用)
(3)需要虛擬 ip

高可用使用

準備工作

(1)準備兩臺服務器 192.169.17.129 和 192.168.17.131;
(2)兩臺服務器中都安裝 nginx
(3)兩臺服務器中都安裝 keepalive

安裝:keepalive

yum install keepalived -y

安裝完畢後,查看是否安裝成功:

rpm -q -a keepalived

安裝完畢後再 /etc/ 文件下會生成個 keepalived 文件夾 裏面會有一個 keepalived.conf 配置文件;

完成高可用配置(主從配置)

(1)修改 /etc/keepalived/keepalived.cong 配置文件

#全局配置
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.17.129
   smtp_connect_timeout 30  
   router_id LVS_DEVEL #訪問到主機
}

#腳本配置
vrrp_script chk_http_port {

    script "/usr/local/src/nginx_check.sh"
    
    interval 2  #(檢測腳本執行的間隔)
    
    weight 2	#權重
}
#虛擬ip配置
vrrp_instance VI_1 {
    state MASTER    #備份服務器上將 MASTER 改爲 BACKUP
    interface ens33 #網卡 通過ifconfig命令查詢
    virtual_router_id 51 #主、備機的virtual_router_id必須相同
    priority 100  #主、備機取不同的優先級,主機值較大,備份機值較小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.17.50  //VRRP H虛擬機地址
    }
}

(2)在 /usr/local/src/ 下添加檢測腳本

#!/bin/bash
A=`ps -C nginx -no-header |wc -1`
if [ $A -eq 0 ];then
    /server/nginx/sbin/nginx  #nginx啓動腳本位置
    sleep 2
    if [ `ps -C nginx --no-header |wc -1` -eq 0 ];then
        killall keepalived
    fi
fi

啓動兩臺服務器的 nginx 和 keepalived 測試

啓動 keepalived 命令如下:

systemctl start keepalived.service 

(1)在地址欄輸入虛擬IP:192.168.17.50

在這裏插入圖片描述

其中在主服務器中輸入 ip address 可查看如下

在這裏插入圖片描述
(2)關閉主服務器的 nginx 和 keepalived 後再此刷新訪問頁面

此時訪問的是從(副)服務器
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章