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

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

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

一、雙主模式原理

1. nginx+keepalived主備模式缺點

雙機主備存在一個問題,不管keepalived存活在哪臺設(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)其中一個nginx宕機,兩個虛擬IP仍然可以正常使用,此時存活的nginx同是綁定2個虛擬IP。

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

雙主與主備的核心區(qū)別就是,主備模式只有一個vrrp實例(默認(rèn)搶占模式:1個master1個backup),雙主機需要兩個虛擬IP,兩個vrrp實例,兩者互為主備,vrrp1實例中(nginx01為master,nginx02為backup)、vrrp2實例中(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. 檢測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

三、測試準(zhǔn)備

1. 啟動nginx01、nginx02

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

請確保真實IP可以訪問到nginx01、nginx02

2. 啟動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成功綁定到各自的真實服務(wù)器IP

四、測試

1. 測試VIP訪問

2. 測試nginx檢測腳本

關(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宕機

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

[root@nginx01 sbin]# systemctl stop keepalived

nginx02網(wǎng)卡信息

nginx01網(wǎng)卡信息

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

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

重啟nginx01的keepalived(或開機)

訪問恢復(fù)正常 

模擬nginx02宕機效果也是一樣,不再重復(fù)實驗。

總結(jié)

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

相關(guān)文章

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

    nginx提示502 頁面的解決方法

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

    Nginx捕獲并自定義proxy_pass返回的錯誤問題

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

    LNMP原理與簡單部署過程

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論

德保县| 铁岭市| 郴州市| 当雄县| 丰宁| 海门市| 西乡县| 淮安市| 恩平市| 新龙县| 乳源| 金坛市| 长乐市| 咸宁市| 谷城县| 巴中市| 叙永县| 陆川县| 岳池县| 五华县| 渑池县| 兴国县| 来安县| 临江市| 奇台县| 吴旗县| 古丈县| 永新县| 东辽县| 庆阳市| 鹤山市| 延寿县| 凤山市| 田林县| 舒兰市| 秦安县| 盐源县| 九台市| 营山县| 平乡县| 武穴市|