最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nginx+keepalived雙主模式雙主熱備方式

 更新時(shí)間:2026年01月29日 10:36:26   作者:luo_guibin  
本文詳細(xì)介紹了雙主模式下Nginx和Keepalived的配置和測(cè)試,雙主模式解決了單主備模式中資源利用率低的問題,通過兩個(gè)虛擬IP和兩個(gè)VRRP實(shí)例實(shí)現(xiàn)互相備份,配置文件包括nginx和keepalived的配置,以及檢測(cè)腳本,測(cè)試部分驗(yàn)證了VIP的漂移和Nginx服務(wù)的自動(dòng)恢復(fù)
主機(jī)名真實(shí)IPVIP
nginx0111.0.1.3111.0.1.29
nginx0211.0.1.3211.0.1.30

一、雙主模式原理

1. nginx+keepalived主備模式缺點(diǎn)

雙機(jī)主備存在一個(gè)問題,不管keepalived存活在哪臺(tái)設(shè)備上,總有一臺(tái)設(shè)備是空閑的,資源利用率并不高,雙主模式可以很好解決該問題。

雙主模式可以實(shí)現(xiàn)以下效果:

  • 11.0.1.29 VIP1 默認(rèn)訪問11.0.1.31
  • 11.0.1.30 VIP2 默認(rèn)訪問11.0.1.32

當(dāng)其中一個(gè)nginx宕機(jī),兩個(gè)虛擬IP仍然可以正常使用,此時(shí)存活的nginx同是綁定2個(gè)虛擬IP。

2. 主備模式和雙主模式的區(qū)別

雙主與主備的核心區(qū)別就是,主備模式只有一個(gè)vrrp實(shí)例(默認(rèn)搶占模式:1個(gè)master1個(gè)backup),雙主機(jī)需要兩個(gè)虛擬IP,兩個(gè)vrrp實(shí)例,兩者互為主備,vrrp1實(shí)例中(nginx01為master,nginx02為backup)、vrrp2實(shí)例中(nginx01為backup,nginx02為master)

二、配置文件

1. nginx01的keepalived.conf

[root@nginx01 sbin]# cat /etc/keepalived/keepalived.conf
global_defs {
    router_id real-server1
    script_user root
    enable_script_security
 }
 
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
}
  
vrrp_instance VI_1 {
     state MASTER
     interface ens33   
     virtual_router_id 151 
     priority 100 
     advert_int 5  
     authentication {
         auth_type  PASS
         auth_pass  1111
 
     }
     virtual_ipaddress {  
       11.0.1.29
     }
    
      track_script {                                                                                  
       chk_nginx
    }
 }
  
vrrp_instance VI_2 {
     state BACKUP
     interface ens33
     virtual_router_id 152
     priority 50
     advert_int 5
     authentication {
         auth_type  PASS
         auth_pass  2222
 
     }
     virtual_ipaddress {
         11.0.1.30
     }
 
    track_script {
    chk_nginx
    }
}

2. nginx02的keepalived.conf

[root@nginx02 sbin]# cat /etc/keepalived/keepalived.conf
global_defs {
    router_id real-server2
    script_user root
    enable_script_security
 }
 
vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_check.sh"
    interval 2
}
 
vrrp_instance VI_1 {
     state BACKUP
     interface ens33
     virtual_router_id 151
     priority 50
     advert_int 5
     authentication {
         auth_type  PASS
         auth_pass  1111
     }
     virtual_ipaddress {
       11.0.1.29
     }
    
      track_script {                                                                                  
       chk_nginx
    }
 }
 
vrrp_instance VI_2 {
     state MASTER
     interface ens33
     virtual_router_id 152
     priority 100
     advert_int 5
     authentication {
         auth_type  PASS
         auth_pass  2222
 
     }
     virtual_ipaddress {
         11.0.1.30
     }
 
    track_script {
    chk_nginx
    }
}

3. 檢測(cè)nginx存活腳本文件nginx_check.sh

[root@nginx01 sbin]# cat /etc/keepalived/nginx_check.sh
#!/bin/bash
counter=$(ps -C nginx --no-heading|wc -l)
if [ "${counter}" = "0" ]; then
    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    sleep 2
    counter=$(ps -C nginx --no-heading|wc -l)
    if [ "${counter}" = "0" ]; then
        systemctl stop keepalived
    fi
fi

三、測(cè)試準(zhǔn)備

1. 啟動(dòng)nginx01、nginx02

cd /usr/local/ngins/sbin
./nginx

請(qǐng)確保真實(shí)IP可以訪問到nginx01、nginx02

2. 啟動(dòng)keepalived

systemctl start keepalived

3. 查看網(wǎng)卡信息

nginx01的網(wǎng)卡信息

[root@nginx01 sbin]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:60:05:0e brd ff:ff:ff:ff:ff:ff
    inet 11.0.1.31/24 brd 11.0.1.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 11.0.1.29/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::a344:1c87:5caf:42cd/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

nginx02的網(wǎng)卡信息

[root@nginx02 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:b9:97:26 brd ff:ff:ff:ff:ff:ff
    inet 11.0.1.32/24 brd 11.0.1.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 11.0.1.30/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::4ae3:fc87:6344:7062/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

可以看出VIP成功綁定到各自的真實(shí)服務(wù)器IP

四、測(cè)試

1. 測(cè)試VIP訪問

2. 測(cè)試nginx檢測(cè)腳本

關(guān)閉nginx01上的nginx服務(wù),查看腳本是否可以正常重啟nginx

[root@nginx01 sbin]# ./nginx -s stop
[root@nginx01 sbin]# ps -aux | grep nginx
root       3598  0.0  0.0  20540   612 ?        Ss   22:48   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
nobody     3600  0.0  0.0  20984  1304 ?        S    22:48   0:00 nginx: worker process
root       3650  0.0  0.0 112824   988 pts/0    R+   22:48   0:00 grep --color=auto nginx

重啟成功,腳本生效。

3. 模擬nginx01宕機(jī)

停止nginx01上的keepalived進(jìn)程或者直接將nginx01關(guān)機(jī)(效果一樣),模擬nginx01宕機(jī)

[root@nginx01 sbin]# systemctl stop keepalived

nginx02網(wǎng)卡信息

nginx01網(wǎng)卡信息

訪問nginx01的VIP11.0.1.29,但實(shí)際是11.0.1.32響應(yīng),因?yàn)閂IP1漂移到nginx02上,此時(shí)nginx02同時(shí)綁定VIP1、VIP2。即使nginx01宕機(jī),ngin01的VIP11.0.1.29仍然可以正常使用。

4. 模擬nginx01修復(fù)宕機(jī)

重啟nginx01的keepalived(或開機(jī))

訪問恢復(fù)正常 

模擬nginx02宕機(jī)效果也是一樣,不再重復(fù)實(shí)驗(yàn)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • nginx提示502 頁面的解決方法

    nginx提示502 頁面的解決方法

    如果部分PHP程序的執(zhí)行時(shí)間超過了Nginx的等待時(shí)間,可以適當(dāng)增加nginx.conf配置文件中FastCGI的timeout時(shí)間
    2013-02-02
  • Nginx捕獲并自定義proxy_pass返回的錯(cuò)誤問題

    Nginx捕獲并自定義proxy_pass返回的錯(cuò)誤問題

    這篇文章主要介紹了Nginx捕獲并自定義proxy_pass返回的錯(cuò)誤問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • LNMP原理與簡(jiǎn)單部署過程

    LNMP原理與簡(jiǎn)單部署過程

    LNMP架構(gòu),是指在Linux平臺(tái)下,由運(yùn)行Nginx的web服務(wù)器,運(yùn)行PHP的動(dòng)態(tài)頁面解析程序和運(yùn)行MySQL的數(shù)據(jù)庫組成的網(wǎng)站架構(gòu),也是當(dāng)前常用的系統(tǒng)架構(gòu)之一,本文主要介紹LNMP原理與簡(jiǎn)單部署,感興趣的朋友一起看看吧
    2023-08-08
  • nginx編譯安裝出現(xiàn)的常見錯(cuò)誤及解決方法

    nginx編譯安裝出現(xiàn)的常見錯(cuò)誤及解決方法

    這篇文章給大家介紹了nginx在編譯安裝過程中容易出現(xiàn)的常見錯(cuò)誤以及解決方法,文中有詳細(xì)的代碼講解,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-08-08
  • nginx+rtmp實(shí)現(xiàn)直播完整流程

    nginx+rtmp實(shí)現(xiàn)直播完整流程

    本文介紹了在寶塔面板上配置Nginx實(shí)現(xiàn)RTMP直播推流和HLS流媒體服務(wù)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-01-01
  • Centos基于Nginx搭建RTMP服務(wù)器的實(shí)現(xiàn)

    Centos基于Nginx搭建RTMP服務(wù)器的實(shí)現(xiàn)

    本文主要介紹了Centos基于Nginx搭建RTMP服務(wù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • nginx+rsync+inotify實(shí)現(xiàn)負(fù)載均衡配置方法

    nginx+rsync+inotify實(shí)現(xiàn)負(fù)載均衡配置方法

    這篇文章主要介紹了nginx+rsync+inotify實(shí)現(xiàn)負(fù)載均衡配置方法,需要的朋友可以參考下
    2014-11-11
  • nginx配置文件使用環(huán)境變量的操作方法

    nginx配置文件使用環(huán)境變量的操作方法

    Nginx是一款開源代碼的高性能HTTP服務(wù)器和反向代理服務(wù)器,同時(shí)支持IMAP/POP3/SMTP代理服務(wù),相較于Apache、lighttpd具有占有內(nèi)存少,穩(wěn)定性高等優(yōu)勢(shì),所以深受用戶喜愛,今天小編給大家分享nginx配置文件使用環(huán)境變量的操作方法,感興趣的朋友一起看看吧
    2021-06-06
  • 教你如何快速在CentOS7中安裝Nginx

    教你如何快速在CentOS7中安裝Nginx

    今天我們就只圖快不圖細(xì)的講解一下如何在CentOS7系統(tǒng)下快速安裝Nginx,本文通過圖文并茂的形式給大家展示,感興趣的朋友一起看看吧
    2021-09-09
  • 如何讓Nginx快速支持TLS1.3協(xié)議詳解

    如何讓Nginx快速支持TLS1.3協(xié)議詳解

    這篇文章主要給大家介紹了如何讓Nginx快速支持TLS1.3協(xié)議的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04

最新評(píng)論

新建县| 德清县| 晋城| 西和县| 万州区| 贡嘎县| 丹凤县| 普格县| 澄迈县| 章丘市| 体育| 衡东县| 乌拉特中旗| 蛟河市| 建水县| 温州市| 黄石市| 吐鲁番市| 桐城市| 安顺市| 吉木萨尔县| 柳州市| 永登县| 葵青区| 遂昌县| 锦屏县| 郧西县| 崇信县| 花莲市| 上栗县| 武义县| 滁州市| 齐齐哈尔市| 长岭县| 河津市| 临邑县| 会昌县| 天长市| 天全县| 新泰市| 当涂县|