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

Keepalived搭建nginx高可用的實(shí)現(xiàn)

 更新時(shí)間:2025年05月21日 11:02:24   作者:matrixlzp  
這篇文章主要介紹了Keepalived搭建nginx高可用的實(shí)現(xiàn),通過(guò)VIP實(shí)現(xiàn)主備切換,檢測(cè)進(jìn)程狀態(tài)確保服務(wù)可用,具有一定的參考價(jià)值,感興趣的可以了解一下

一、環(huán)境準(zhǔn)備

兩臺(tái)裝有 nginx 的 CentOS 虛擬機(jī)。

[root@nginx1 ~]# echo "192.168.40.81 say Hello" > /usr/local/nginx/html/index.html
[root@nginx2 ~]# echo "192.168.40.82 say Hello" > /usr/local/nginx/html/index.html

二、原理

Keepalived 為我們后端服務(wù)器組虛擬出一組 VIP,該 VIP 只能由優(yōu)先級(jí)最高的一臺(tái)服務(wù)器持有??蛻舳嗽L問(wèn),就只訪問(wèn) VIP。

當(dāng)主服務(wù)器掛掉之后,Keepalived 自動(dòng)幫我們把 VIP 漂移到 BACKUP 服務(wù)器。以此來(lái)保證服務(wù)的高可用。

Keepalived 通過(guò)檢測(cè)服務(wù)器上的 Keepalived 進(jìn)程的存活狀態(tài),來(lái)判斷服務(wù)器是否存活。

三、安裝

1)安裝 keepalived

# 在 nginx1 安裝 keepalived
[root@nginx1 ~]# yum install -y keepalived
# 在 nginx2 安裝 keepalived
[root@nginx2 ~]# yum install -y keepalived

2)配置

使用 yum 安裝后配置文件在 /etc/keepalived/keepalived.conf

# 備份 nginx1 keepalived 配置文件
[root@nginx1 keepalived]# cp keepalived.conf keepalived.conf.bak
# 備份 nginx2 keepalived 配置文件
[root@nginx2 keepalived]# cp keepalived.conf keepalived.conf.bak
  • nginx1 上 keepalived.conf:
! Configuration File for keepalived

global_defs {
   router_id lb1
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.40.80
    }
}
  • global_defs:全局配置標(biāo)識(shí)。
  • router_id:路由器標(biāo)識(shí),一般不用改,也可以寫成每個(gè)主機(jī)自己的主機(jī)名。
  • vrrp_instance:一個(gè) vrrp_instance 就是定義一個(gè)虛擬路由器的,VI_1 是實(shí)例名稱。
  • state:指定 keepalived 的角色,MASTER 表示此主機(jī)是主服務(wù)器,BACKUP 表示此主機(jī)是備服務(wù)器。
  • interface:指定檢測(cè)網(wǎng)絡(luò)的網(wǎng)卡接口。就比如下圖的 ens33。

  • virtual_router_id:虛擬路由標(biāo)識(shí),數(shù)字形式,同一個(gè) VRRP 實(shí)例使用唯一的標(biāo)識(shí),即在同一個(gè) vrrp_instance下,master 和 backup 必須一致。
  • priority:節(jié)點(diǎn)優(yōu)先級(jí),數(shù)字越大表示節(jié)點(diǎn)的優(yōu)先級(jí)越高,在一個(gè) VRRP 實(shí)例下,MASTER 的優(yōu)先級(jí)必須要比 BACKUP 高,不然就會(huì)切換角色。
  • advert_int:用于設(shè)定 MASTER 與 BACKUP 之間同步檢查的時(shí)間間隔,單位為秒。
  • auth_type:預(yù)共享密鑰認(rèn)證,同一個(gè)虛擬路由器的 keepalived 節(jié)點(diǎn)必須一樣。
  • auth_pass:設(shè)置密鑰。
  • virtual_ipaddress:設(shè)置虛擬IP地址,可以設(shè)置多種形式:
  • 10.0.0.100 不指定網(wǎng)卡,默認(rèn)為 eth0,注意:不指定/prefix,默認(rèn)為/32;
  • 10.0.0.101/24 dev eth1 指定 VIP 的網(wǎng)卡;
  • 10.0.0.102/24 dev eth2 label eth2:1 指定 VIP 的網(wǎng)卡 label。
  • nginx2 上 keepalived.conf:
! Configuration File for keepalived

global_defs {
   router_id lb2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.40.80
    }
}

3)啟動(dòng)

# 啟動(dòng) MASTER 服務(wù)器 keepalived 并設(shè)置為開(kāi)機(jī)自啟動(dòng)
[root@nginx1 keepalived]# systemctl enable keepalived --now
[root@nginx1 keepalived]# systemctl status keepalived
[root@nginx1 keepalived]# ip a

會(huì)發(fā)現(xiàn) MASTER 服務(wù)器多出了 192.168.40.80 這個(gè)IP。

# 啟動(dòng) BACKUP 服務(wù)器 keepalived 并設(shè)置為開(kāi)機(jī)自啟動(dòng)
[root@nginx2 keepalived]# systemctl enable keepalived --now
[root@nginx2 keepalived]# systemctl status keepalived
[root@nginx2 keepalived]# ip a

備份服務(wù)器并不持有 VIP。

4)訪問(wèn)

此時(shí)訪問(wèn) VIP,請(qǐng)求都是被打到 MASTER 上的 nginx。

5)故障測(cè)試

# 停掉 MASTER
[root@nginx1 ~]# init 0

 此時(shí) VIP 飄移到 BACKUP。

6)重啟 MASTER

 此時(shí) VIP 又漂移回來(lái)了。

四、定制腳本

Keepalived 通過(guò)檢測(cè)服務(wù)器上的 Keepalived 進(jìn)程的存活狀態(tài),來(lái)判斷服務(wù)器是否存活。

但如果此時(shí),我們的服務(wù)器沒(méi)有掛,但是我們希望 Keepalived 保活的服務(wù)(比如 nginx)掛了,由于 Keepalived 進(jìn)程沒(méi)有掛,這個(gè)時(shí)候,Keepalived 是不會(huì)幫我們主備切換的。

# 停掉 MASTER
[root@nginx1 ~]# systemctl stop nginx

 這個(gè)時(shí)候 VIP 并沒(méi)有遷移走。這個(gè)時(shí)候,我們就得自己寫一個(gè)腳本,去檢測(cè) nginx 存活狀態(tài),如果 nginx 掛了,人為殺死 keepalived 進(jìn)程,讓 keepalived 幫我們主備切換。

先重新啟動(dòng) nginx

[root@nginx1 ~]# systemctl start nginx

1)修改 keepalived.conf

  •  nginx1 上 keepalived.onf:
! Configuration File for keepalived

global_defs {
   router_id lb1
}

vrrp_script check_nginx {
    script "pgrep nginx"
    interval 2
    weight 50  # 當(dāng)檢查失敗時(shí),優(yōu)先級(jí)會(huì)減去這個(gè)值
    fall 2
    rise 2
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.40.80
    }
    track_script {
        check_nginx
    } 
}
  •  nginx2 上 keepalived.conf:
! Configuration File for keepalived

global_defs {
   router_id lb2
}

vrrp_script check_nginx {
    script "pgrep nginx"
    interval 2
    weight 50  # 當(dāng)檢查失敗時(shí),優(yōu)先級(jí)會(huì)減去這個(gè)值
    fall 2
    rise 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.40.80
    }
    track_script {
        check_nginx
    } 
}

2)重啟 keepalived

[root@nginx1 keepalived]# sudo systemctl restart keepalived

[root@nginx2 keepalived]# sudo systemctl restart keepalived

3)停掉 MASTER 

# 停掉 MASTER
[root@nginx1 ~]# systemctl stop nginx

 VIP 這次終于被遷移到 BACKUP。

五、應(yīng)用場(chǎng)景

Keepalived + Nginx 的組合有很多應(yīng)用場(chǎng)景:

  • 搭建 Nacos 高可用集群
  • 搭建 K8S Ingress 入口

到此這篇關(guān)于Keepalived搭建nginx高可用的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Keepalived搭建nginx高可用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • nginx中root和alias指令的使用

    nginx中root和alias指令的使用

    這篇文章主要介紹了nginx中root和alias指令的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 關(guān)于nginx?反向代理?URL替換方案

    關(guān)于nginx?反向代理?URL替換方案

    這篇文章主要介紹了nginx?反向代理?URL替換方案,本文給大家代理兩種方法一種是直接替換location匹配部分,第二種是使用nginx?的rewrite?模塊,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Nginx代理導(dǎo)致請(qǐng)求頭某些內(nèi)容丟失的問(wèn)題解決

    Nginx代理導(dǎo)致請(qǐng)求頭某些內(nèi)容丟失的問(wèn)題解決

    本文主要介紹了在使用NGINX代理時(shí)請(qǐng)求頭中的下劃線被自動(dòng)忽略的問(wèn)題,通過(guò)兩種方法解決了這個(gè)問(wèn)題,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • Nginx優(yōu)化服務(wù)之網(wǎng)頁(yè)壓縮的實(shí)現(xiàn)方法

    Nginx優(yōu)化服務(wù)之網(wǎng)頁(yè)壓縮的實(shí)現(xiàn)方法

    這篇文章主要介紹了Nginx優(yōu)化服務(wù)之網(wǎng)頁(yè)壓縮的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 把ImageMagic庫(kù)編譯進(jìn)nginx服務(wù)器的一些必要配置

    把ImageMagic庫(kù)編譯進(jìn)nginx服務(wù)器的一些必要配置

    這篇文章主要介紹了把ImageMagic庫(kù)編譯進(jìn)nginx服務(wù)器的一些必要配置,本文給出了操作步驟和配置參數(shù)示例,需要的朋友可以參考下
    2015-06-06
  • nginx 429狀態(tài)碼排查與處理方式

    nginx 429狀態(tài)碼排查與處理方式

    這篇文章主要介紹了nginx 429狀態(tài)碼排查與處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • Nginx 502 Bad Gateway錯(cuò)誤原因及解決方案

    Nginx 502 Bad Gateway錯(cuò)誤原因及解決方案

    這篇文章主要介紹了Nginx 502 Bad Gateway錯(cuò)誤原因及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • nginx的請(qǐng)求轉(zhuǎn)發(fā)配置過(guò)程

    nginx的請(qǐng)求轉(zhuǎn)發(fā)配置過(guò)程

    Nginx在Windows和Linux環(huán)境下的安裝、啟動(dòng)、停止、配置和請(qǐng)求轉(zhuǎn)發(fā)過(guò)程,配置文件語(yǔ)法檢測(cè)、優(yōu)雅關(guān)閉、熱部署和日志文件重新打開(kāi),配置多個(gè)服務(wù)的請(qǐng)求轉(zhuǎn)發(fā)規(guī)則,修改前端API地址,設(shè)置最大上傳文件大小
    2024-12-12
  • LNMP編譯安裝之nginx安裝配置方法圖文教程

    LNMP編譯安裝之nginx安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了LNMP編譯安裝之nginx安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Nginx配置請(qǐng)求頭攜帶原始請(qǐng)求信息的實(shí)現(xiàn)

    Nginx配置請(qǐng)求頭攜帶原始請(qǐng)求信息的實(shí)現(xiàn)

    本文主要介紹了Nginx配置請(qǐng)求頭攜帶原始請(qǐng)求信息的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-12-12

最新評(píng)論

陆丰市| 育儿| 秀山| 曲松县| 商水县| 彰化市| 沭阳县| 临安市| 乾安县| 济南市| 巩义市| 武汉市| 邻水| 西盟| 土默特左旗| 延庆县| 财经| 平泉县| 星座| 宁陵县| 鄂托克旗| 云安县| 开阳县| 鹤庆县| 嘉黎县| 大关县| 镇远县| 新巴尔虎左旗| 彭山县| 乐业县| 汝城县| 江津市| 弥渡县| 武城县| 新巴尔虎左旗| 隆子县| 乾安县| 南雄市| 海伦市| 高阳县| 镇远县|