RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

解析keepalived+nginx實(shí)現(xiàn)高可用方案技術(shù)

454398 ? 來源:itpub技術(shù)棧 ? 作者:itpub技術(shù)棧 ? 2020-09-30 15:52 ? 次閱讀

之前講了Nginx 如何實(shí)現(xiàn)負(fù)載均衡以及如何實(shí)現(xiàn)動(dòng)靜分離,實(shí)現(xiàn)系統(tǒng)的分布式部署,提高系統(tǒng)的并發(fā)性能。但是,有個(gè)問題:如果Nginx 系統(tǒng)掛了,整個(gè)系統(tǒng)就都不可用了。Nginx 處于整個(gè)系統(tǒng)非常重要的位置,Nginx的高可用影響到整個(gè)系統(tǒng)的穩(wěn)定性。如果nginx服務(wù)器宕機(jī),后端web服務(wù)將無法提供服務(wù),影響嚴(yán)重。所以如何保證Nginx 的穩(wěn)定和高可用非常重要,接下來就來介紹Nginx + keepalived 實(shí)現(xiàn)系統(tǒng)負(fù)載均衡高可用的方案。

一、什么是負(fù)載均衡高可用

Nginx作為負(fù)載均衡器,所有請求必須經(jīng)過Nginx 服務(wù)器,可見Nginx處于非常重點(diǎn)的位置,如果Nginx服務(wù)器宕機(jī)后端web服務(wù)將無法提供服務(wù),影響嚴(yán)重。

為了避免因?yàn)樨?fù)載均衡服務(wù)器的宕機(jī)從而影響整個(gè)系統(tǒng)的問題,需要建立一個(gè)備份機(jī)。主服務(wù)器和備份服務(wù)器上都運(yùn)行監(jiān)控程序,通過傳送心跳信息來監(jiān)控對方的運(yùn)行狀況。當(dāng)備份服務(wù)器在一定的時(shí)間內(nèi)沒有收到主服務(wù)器的心跳信息時(shí),它就自動(dòng)接管主服務(wù)器的服務(wù)IP,繼續(xù)提供負(fù)載均衡服務(wù);當(dāng)備份服務(wù)器又從主服務(wù)器收到心跳信息時(shí),它就釋放服務(wù)IP地址,這樣的主服務(wù)器就開始再次提供負(fù)載均衡服務(wù)。

二、Nginx高可用方案

目前,比較流行的實(shí)現(xiàn)Nginx高可用方案就是:keepalived+nginx實(shí)現(xiàn)主備方案。

1、什么是keepalived

keepalived是集群管理中保證集群高可用的一個(gè)服務(wù)軟件,用來防止單點(diǎn)故障。

Keepalived的作用是檢測web服務(wù)器的狀態(tài),如果有一臺web服務(wù)器死機(jī),或工作出現(xiàn)故障,Keepalived將檢測到,并將有故障的web服務(wù)器從系統(tǒng)中剔除,當(dāng)web服務(wù)器工作正常后Keepalived自動(dòng)將web服務(wù)器加入到服務(wù)器群中,這些工作全部自動(dòng)完成,不需要人工干涉,需要人工做的只是修復(fù)故障的web服務(wù)器。

2、keepalived工作原理

keepalived是以VRRP協(xié)議為實(shí)現(xiàn)基礎(chǔ)的,VRRP全稱 Virtual Router Redundancy Protocol,即虛擬路由冗余協(xié)議。

虛擬路由冗余協(xié)議,可以認(rèn)為是實(shí)現(xiàn)路由器高可用的協(xié)議,即將N臺提供相同功能的路由器組成一個(gè)路由器組,這個(gè)組里面有一個(gè)master和多個(gè)backup,master上面有一個(gè)對外提供服務(wù)的vip(VIP = Virtual IP Address,虛擬IP地址,該路由器所在局域網(wǎng)內(nèi)其他機(jī)器的默認(rèn)路由為該vip),master會發(fā)組播,當(dāng)backup收不到VRRP包時(shí)就認(rèn)為master宕掉了,這時(shí)就需要根據(jù)VRRP的優(yōu)先級來選舉一個(gè)backup當(dāng)master。這樣的話就可以保證路由器的高可用了。

keepalived主要有三個(gè)模塊,分別是core、check和VRRP。core模塊為keepalived的核心,負(fù)責(zé)主進(jìn)程的啟動(dòng)、維護(hù)以及全局配置文件的加載和解析。check負(fù)責(zé)健康檢查,包括常見的各種檢查方式。VRRP模塊是來實(shí)現(xiàn)VRRP協(xié)議的。

3、keepalived+nginx實(shí)現(xiàn)主備過程

keepalived + nginx 實(shí)現(xiàn)主備的過程,如下圖所示:

從上圖可以看到,主Nginx健康時(shí),系統(tǒng)所有的請求通過主Nginx 轉(zhuǎn)發(fā)到Tomcat服務(wù)器集群。當(dāng)主Nginx 宕機(jī)后,會立馬切換到備Nginx ,由備Nginx 提供轉(zhuǎn)發(fā)服務(wù)。這樣就保證系統(tǒng)的正常運(yùn)行。

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

1、兩天Nginx服務(wù)器和兩臺web服務(wù)器

兩臺nginx,一主一備:192.168.101.3和192.168.101.4

兩臺tomcat服務(wù)器:192.168.101.5、192.168.101.6

2、安裝keepalived

分別在主備nginx上安裝keepalived,這里就講解keepalived的安裝了。

3、配置虛擬IP(vip:192.168.101.100)

四、配置Nginx高可用

1、配置主nginx

修改主nginx下/etc/keepalived/keepalived.conf文件,配置主Nginx。

2、配置備nginx

修改備nginx下/etc/keepalived/keepalived.conf文件,配置備Nginx

配置備nginx時(shí)需要注意:需要修改state為BACKUP , priority比MASTER低,virtual_router_id和master的值

3、測試

1、主備nginx都啟動(dòng)keepalived及nginx。

service keepalived start./nginx

2、啟動(dòng)之后,主Nginx正常工作,分別查看主nginx和 備nginx的eth0設(shè)置,vip(192.168.101.100)綁定在主nginx的eth0上。

打開瀏覽器,訪問http://192.168.101.100,可以訪問,主Nginx 服務(wù)器正常,系統(tǒng)可用。

3、將主nginx的keepalived停止或?qū)⒅鱪ginx關(guān)機(jī)(相當(dāng)于模擬宕機(jī)),再次查看主nginx和 備nginx的eth0設(shè)置,vip(192.168.101.100)已經(jīng)漂移到備nginx 上。

再次訪問http://192.168.101.100,發(fā)現(xiàn)系統(tǒng)依然可以訪問,說明主Nginx 宕機(jī)之后,自動(dòng)切換到備用Nginx。

最后

以上,keepalived+nginx 系統(tǒng)高可用的解決方案介紹完了,看上去復(fù)雜,其實(shí)配置還是比較簡單的。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9123

    瀏覽量

    85322
  • 路由器
    +關(guān)注

    關(guān)注

    22

    文章

    3728

    瀏覽量

    113701
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    149

    瀏覽量

    12170
  • 負(fù)載均衡器
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    2583
收藏 人收藏

    評論

    相關(guān)推薦

    基于KeepAlive的可用配置

    KeepAlived集群可用搭建
    發(fā)表于 06-11 16:36

    使用nginx實(shí)現(xiàn)tomcat負(fù)載均衡

    Nginx+tomcat+memcached實(shí)現(xiàn)負(fù)載均衡及session(交叉存儲)
    發(fā)表于 08-28 08:52

    nginx實(shí)現(xiàn)的負(fù)載均衡

    nginx實(shí)現(xiàn)負(fù)載均衡
    發(fā)表于 05-04 13:42

    16nginx+keepalived +zuul如何實(shí)現(xiàn)可用及負(fù)載均衡

    學(xué)習(xí)筆記微服務(wù)-16 nginx+keepalived +zuul 實(shí)現(xiàn)可用及負(fù)載均衡
    發(fā)表于 05-22 10:16

    Keepalived+Haproxy如何實(shí)現(xiàn)可用負(fù)載綜合實(shí)驗(yàn)

    Keepalived+Haproxy實(shí)現(xiàn)可用負(fù)載綜合實(shí)驗(yàn)
    發(fā)表于 06-02 16:53

    Nginx和Tomcat負(fù)載均衡實(shí)現(xiàn)session共享

    Nginx和Tomcat負(fù)載均衡實(shí)現(xiàn)session共享
    發(fā)表于 09-05 10:40 ?9次下載
    <b class='flag-5'>Nginx</b>和Tomcat負(fù)載均衡<b class='flag-5'>實(shí)現(xiàn)</b>session共享

    Nginx 常見應(yīng)用技術(shù)指南

    Nginx 常見應(yīng)用技術(shù)指南
    發(fā)表于 09-07 14:42 ?6次下載
    <b class='flag-5'>Nginx</b> 常見應(yīng)用<b class='flag-5'>技術(shù)</b>指南

    Nginx可用方案

    可用HA(High Availability)是分布式系統(tǒng)架構(gòu)設(shè)計(jì)中必須考慮的因素之一,它通常是指,通過設(shè)計(jì)減少系統(tǒng)不能提供服務(wù)的時(shí)間。如果一個(gè)系統(tǒng)能夠一直提供服務(wù),那么這個(gè)可用性則是百分之百,但是天有不測風(fēng)云。所以我們只能盡
    的頭像 發(fā)表于 02-01 09:19 ?536次閱讀

    Keepalived工作原理簡介

    Keepalived實(shí)現(xiàn)可用架構(gòu)的不二之選,如果你想通過開源軟件來搭建一套雙機(jī)熱備架構(gòu)系統(tǒng),Keepalived絕對是最優(yōu)選擇。無論是在
    的頭像 發(fā)表于 02-25 17:00 ?1015次閱讀

    搭建Keepalived+Lvs+Nginx可用集群負(fù)載均衡

    Server)實(shí)現(xiàn)可用負(fù)載均衡 附:LVS的負(fù)載均衡算法 八、搭建Keepalived+Lvs+Nginx
    的頭像 發(fā)表于 06-25 15:39 ?2974次閱讀
    搭建<b class='flag-5'>Keepalived+Lvs+Nginx</b><b class='flag-5'>高</b><b class='flag-5'>可用</b>集群負(fù)載均衡

    微服務(wù)架構(gòu)組件分析,看這篇就夠了

    Nginx作為整個(gè)架構(gòu)的流量入口,可以理解為一個(gè)外部的網(wǎng)關(guān),它承擔(dān)著請求的路由轉(zhuǎn)發(fā)、負(fù)載均衡、動(dòng)靜分離等功能。作為一個(gè)核心入口點(diǎn),Nginx肯定要采用多節(jié)點(diǎn)部署,同時(shí)通過keepalived
    發(fā)表于 09-01 10:25 ?1767次閱讀
    微服務(wù)架構(gòu)組件分析,看這篇就夠了

    Nginx 如何實(shí)現(xiàn)高性能低消耗

    Nginx 是一個(gè)輕量級的HTTP 服務(wù)程序,相比其他服務(wù)器程序如Apache,Nginx占用內(nèi)存少,穩(wěn)定性,并發(fā)處理能力強(qiáng)。同時(shí)Nginx 還是一個(gè)反向代理服務(wù)程序,和郵件代理服務(wù)
    的頭像 發(fā)表于 11-11 11:31 ?578次閱讀
    <b class='flag-5'>Nginx</b> 如何<b class='flag-5'>實(shí)現(xiàn)</b>高性能低消耗

    nginx負(fù)載均衡配置介紹

    目錄 nginx負(fù)載均衡 nginx負(fù)載均衡介紹 反向代理與負(fù)載均衡 nginx負(fù)載均衡配置 Keepalived
    的頭像 發(fā)表于 11-10 13:39 ?230次閱讀
    <b class='flag-5'>nginx</b>負(fù)載均衡配置介紹

    確保網(wǎng)站無縫運(yùn)行:Keepalived可用Nginx集成實(shí)戰(zhàn)

    目錄 keepalived可用(nginx) keepalived簡介 keepalived
    的頭像 發(fā)表于 11-27 09:08 ?245次閱讀
    確保網(wǎng)站無縫運(yùn)行:<b class='flag-5'>Keepalived</b><b class='flag-5'>高</b><b class='flag-5'>可用</b>與<b class='flag-5'>Nginx</b>集成實(shí)戰(zhàn)

    nginx+lua+redis實(shí)現(xiàn)灰度發(fā)布

    了這種能力,隨時(shí)可以基于這種能力和思想調(diào)整實(shí)現(xiàn)方案:比如nginx+lua+(其他數(shù)據(jù)源)、nginx+(其他腳本語言) 一、灰度方案: 常
    的頭像 發(fā)表于 12-17 10:01 ?43次閱讀
    RM新时代网站-首页