1. 程式人生 > >Keepalived+LVS-DR+Nginx高可用故障切換模式

Keepalived+LVS-DR+Nginx高可用故障切換模式

LVS架構中,不管是NAT模式還是DR模式,當後端的RS宕掉後,排程器依然會把請求轉發到宕掉的RS上,這樣的結果並不是我們想要的。其實,keepalived就可以解決問題,它不僅僅有高可用的功能,還有負載均衡。也就是說keepalived已經嵌入了LVS功能,完整的keepalived+LVS架構需要有兩臺排程器實現高可用,提供排程器的只需要一臺,另外一臺作為備用。LVS架構模式瞭解:【Linux】虛擬伺服器之LVS
準備:
1,四臺伺服器或虛擬機器:
主keepalived(排程器):192.168.243.133 (keepalived和ipvsadm)
從keepalived(排程器):192.168.243.134 (keepalived和ipvsadm)

  • 真實伺服器rs1:192.168.243.135 (nginx)
  • 真實伺服器rs2:192.168.243.136 (nginx)
  • VIP:192.168.243.100
yum install -y ipvsadm
vi /usr/local/keepalived-1.3.4/etc/keepalived/keepalived.conf

這是配置檔案裡面的一些內容:

vrrp_instance VI_1 {
   #備用伺服器上為 BACKUP
   state MASTER
  #繫結vip的網絡卡為ens33,根據自己的伺服器來設定
    interface ens33
    virtual_router_id 51
    #備用伺服器上為90
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.243.100
    }
}
virtual_server 192.168.243.100 80 {
    #(每隔10秒查詢realserver狀態)
    delay_loop 10
    #(lvs 演算法)
    lb_algo rr
    #(DR模式)
    lb_kind DR
    #(同一IP的連線60秒內被分配到同一臺realserver)
    persistence_timeout 60
    #(用TCP協議檢查realserver狀態)
    protocol TCP
    
    #真實伺服器(nginx) 
    real_server 192.168.243.135 80 {
        #(權重)
        weight 100
        TCP_CHECK {
        #(10秒無響應超時)
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    
    #真實伺服器(nginx) 
    real_server 192.168.243.136 80 {
        weight 100
        TCP_CHECK {
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
     }
}

2,這裡在keepalived的配置檔案中定義的LVS模式為DR模式,還需要在兩臺rs上執行lvs_dr_rs.sh指令碼

vi /usr/local/sbin/lvs_dr_rs.sh

將下面內容可貼上至該指令碼檔案中:

#/bin/bash
vip=192.168.243.100
#把vip繫結在lo上,是為了實現rs直接把結果返回給客戶端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作為更改arp核心引數,目的是為了讓rs順利傳送mac地址給客戶端
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

3,執行:sh /usr/local/sbin/lvs_dr_rs.sh
4,在兩臺真實伺服器上面執行完畢之後,執行ip addr就能看到兩臺伺服器的lo都繫結好了虛擬ip,如圖:
這裡寫圖片描述
注意:伺服器重啟之後繫結的這個虛擬ip就沒有了,需要再執行一下指令碼,所以可以把對這個指令碼的執行放到開機自啟中。

執行命令:vi /etc/rc.d/rc.local
將以下內容新增至該檔案中:sh /usr/local/sbin/lvs_dr_rs.sh
儲存退出,然後新增執行許可權:chmod +x rc.local

之後,在133上啟動keepalived服務:systemctl start keepalived
執行ip addr,可以看到在ens33上面繫結的虛擬ip,如圖:
這裡寫圖片描述
然後可以在排程器133上執行命令ipvsadm -ln檢視連線數,如圖:
這裡寫圖片描述
當我把135關掉之後,就只有一臺在連線了
這裡寫圖片描述
高可用故障切換模式,這個功能實現的有些難度,鑽研了好幾天才出來,主要是因為這裡面的邏輯不是太好理清楚。每次開4個虛擬機器做實驗,CPU都飆到87%也是很酸爽,很害怕下一秒筆記本就崩掉~
最後上一張,根據我的理解,畫的邏輯圖:
在這裡插入圖片描述
感謝您的閱讀~

相關推薦

Keepalived+LVS-DR+Nginx可用故障切換模式

LVS架構中,不管是NAT模式還是DR模式,當後端的RS宕掉後,排程器依然會把請求轉發到宕掉的RS上,這樣的結果並不是我們想要的。其實,keepalived就可以解決問題,它不僅僅有高可用的功能,還有負

Keepalived + LVS-DR搭建可用Web伺服器叢集

導航: Keepalived概述 LVS概述 編譯安裝keepalived 配置主排程器 雙機熱備 一、Keepalived概述 keepalived是一個類似於layer3, 4 & 5交換機制的軟體,也就是我們平時說的第3層、第4層和第5層交換。Keepalive

Keepalived + LVS-DR搭建可用Web服務器集群

9.png 構圖 windows pro 所有結點 編譯 機制 pool tor 導航: Keepalived概述 LVS概述 編譯安裝keepalived 配置主調度器 雙機熱備 一、Keepalived概述 keepalived是一個類似於layer3, 4 &

LVS-DR+Keepalive可用群集集

ML .com 可靠的 _for image Oz arp 可用 work LVS負載均衡群集其中之一:LVS-DR加上keepalive可實現穩定以及可靠的負載均衡; 實驗結構 實驗思路: 調度服務器區域實現接收訪問,調用節點服務器池可用服務器。實現keepalive

014.Docker Harbor+Keepalived+LVS+共享儲存可用架構

一 多Harbor高可用介紹 共享後端儲存是一種比較標準的方案,將多個Harbor例項共享同一個後端儲存,任何一個例項持久化到儲存的映象,都可被其他例項中讀取。通過前置LB元件,如Keepalived,可以分流到不同的例項中去處理,從而實現負載均衡,也避免了單點故障,其架構圖如下: 方

keepalived ,lvs,tomcat 可用併發,高效能 應用架構的搭建

keepalived ,lvs,tomcat 高可用,高併發,高效能  應用架構的搭建 keepalived ,lvs 搭建在同一臺伺服器上,兩個tomcat 分別在一個tomcat上  四臺伺服器版本 :  centos 6.5 yum install ipvsa

keepalived+lvs+nginx 可用

路由器 tac 註釋 減少 nop 基於ip vmw prot 多臺 keepalived是一款用C編寫的,旨在給linux系統和基於linux的設施提供簡單、穩固的高可用和負載均衡功能的軟件。它基於linux內核的ipvs模塊實現4層負載均衡,能應用一系列的健康狀態檢測

記一次Nginx+Keepalived可用故障轉移

oot .com slave admin prior 嘗試 connect 手動 com Master端:192.168.2.156 ! Configuration File for keepalived global_defs { notification_e

LVS+Keepalived+Squid+Nginx可用負載均衡快取配置

隨著網際網路IT行業的發展,越來越多的企業開始使用開源軟體搭建自己的web架構,主流的LVS也得到了廣泛的應用,在保證高可用的同時,使用者對網站的體驗速度也有了很高的要求,這時候需要我們在我們的架構既要滿足高併發同時還要求高速度。 今天我們來搭建主流架構Lvs+Keepalived+Sq

Keepalived+Lvs-DR可用

time keepal tar ++ 網卡 p地址 host 誰的 oot Keepalived高可用keepalived+LVS-DR模式拓撲圖:LVS:是中間件軟件(即代理服務器軟件),是用來實現集群的負載均衡。

Keepalived+LVS+nginx搭建nginx可用叢集

       nginx是一款非常優秀的反向代理工具,支援請求分發,負載均衡,以及快取等等非常實用的功能。在請求處理上,nginx

配置Keepalived雙實例可用Nginx

keepalived 雙實例 高可用nginx服務我們知道Keepalived原生設計目的是為了高可用LVS集群的,但Keepalived除了可以高可用LVS服務之外,還可以基於vrrp_script和track_script高可用其它服務,如Nginx等。本篇主要演示如何使用Keepalived高可用Ngi

公司nginx keepalived tomcat cxf 搭建可用負載均衡實戰系列1- keepalived安裝配置

技術分享 cnblogs start ges idt def auth div .cn 1,ip說明 vip 10.50.13.67 server1 10.50.13.68 server2 10.50.13.140 2

手把手教程: CentOS 6.5 LVS + KeepAlived 搭建 負載均衡 可用 集群

ipvs 管理 bar 10.10 方正 希望 滿足 open chm 為了實現服務的高可用和可擴展,在網上找了幾天的資料,現在終於配置完畢,現將心得公布處理,希望對和我一樣剛入門的菜鳥能有一些幫助。 一、理論知識(原理) 我們不僅要知其然,而且要知其所以然,所以先

keepalived雙主模式實現nginx可用及LNAMMP架構

keepalived nginx lnammpkeepalived雙主模式實現nginx高可用及LNAMMP架構一、利用keepalived實現nginx調度器高可用;二、構建LNAMMP架構: 1) Nginx既是前端調度器,又是緩存服務器; 2) 將php的session緩存於memcached中;

【MySQL】【可用】基於MHA架構的MySQL可用故障自動切換架構

bin candidate nlog repo sage $1 內容 data from 基於MHA架構的MySQL高可用切換架構 環境: ? CentOS7+MySQL 5.7 + GTID 業務系統:mainBusiness ? nod

使用Keepalived配置主從熱備實現Nginx可用(HA)

_id keep 過去 基礎 inter icmp interval RR 轉發 Keepalived 簡要介紹 Keepalived 是一種高性能的服務器高可用或熱備解決方案,Keepalived 可以用來防止服務器單點故障的發生,通過配合 Nginx 可以實現 w

lvs+keepalived 可用負載均衡模式分析

lvs 高可用 keepalived nginx 1. 前言 在《keepalived 雙機熱備》這篇文章中,我寫了利用keepalived 這個開源軟件實現高可用的功能,以及keepalived 高可用所使用的協議——利用vrrp 協議,在高可用網絡組內廣播自己的優先級,優先級最高的就能搶占

redis主從+keepalived 可用 自動切換

redis主從高可用一環境介紹 master: 172.168.1.69slave : 172.168.1.57 VIP 172.168.1.253 虛擬IP 二。設計思路: 當 Master 與 Slave 均運作正常時, Master負責服務,Slave負責Standby; 當

Nginx+Keepalived實現Nginx可用

itl one 瀏覽器 p地址 存在 interval img title 訪問 在架構設計中,可以利用NGINX的反向代理和負載均衡實現後端應用的高可用性,同時我們還需要考慮Nginx的單點故障。真正做到架構高可用性。主要考慮以下幾點: 1、Nginx服務因為意外