1. 程式人生 > >Keepalived+LVS+Nginx負載均衡之高可用

Keepalived+LVS+Nginx負載均衡之高可用

  一、Keepalived介紹

   Keepalived是分散式部署系統解決系統高可用的軟體,結合LVS(Linux Virtual Server)使用,其功能類似於heartbeat,解決單機宕機的問題。

  二、Keepalived技術原理

   keepalived是以VRRP協議為實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗餘協議。通過VRRP協議結合LVS,對組群伺服器監控情況,若master出現宕機情況,則將VIP漂移到backup機上。實現了分散式系統高可用。可以理解為:keepalived是LVS的管理軟體,根據監控情況,將宕機伺服器從ipvsadm移除掉。

  三、Keepalived+LVS+Nginx實現系統高可用

  

伺服器 IP地址 說明
虛擬IP 192.168.1.120:80
主機 192.168.1.104:80
備機 192.168.1.103:80
Web站點A 192.168.1.101:8081 不同埠
Web站點B 192.168.1.101:8082 不同埠

  1、安裝ipvsadm,CentOS7自帶安裝包,通過yum進行安裝。實現系統支援LVS

?
1 yum install ipvsadm

  2、安裝Keepalived軟體,並將keepalived設定開機啟動

?
1 yum install Keepalived
?
1 systemctl enable keepalived

  3、進行Keepalived.conf配置,如果是MASTER機,將state BACKUP改為state MASTER。

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 vim /etc/keepalived/keepalived.conf #配置的內容 ! Configuration Filefor keepalived global_defs { notification_email { [email protected] #收到通知的郵件地址 } notification_email_from [email protected] smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_script monitor_nginx{ script"/usr/local/etc/keepalived/script/monitor_nginx.sh" interval 1 weight -15 } vrrp_instance VI_1 { state BACKUP interfaceeno16777736 virtual_router_id 51 priority 80 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.120 } track_script { monitor_nginx } } virtual_server 192.168.1.120 80 { delay_loop 6 lb_algo wrr lb_kind DR persistence_timeout 50 protocol TCP real_server 192.168.1.103 80 { weight 1 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.1.104 80 { weight 5 TCP_CHECK { connect_timeout 10 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }

  4、配置監控shell指令碼

?
1 2 3 4 5 6 7 8 9 10 (1)建立:vim /usr/local/etc/keepalived/script/monitor_nginx.sh<br><br>(2)SHELL檔案內容<br>#!/bin/bash  if [ "$(ps -ef | grep "nginx: master process"| grep -v grep )"== "" ] then  systemclt start nginx.service sleep 5    if[ "$(ps -ef | grep "nginx: master process"| grep -v grep )"== "" then   killall keepalived  fi  fi

  現在我們對nginx進行配置:

安裝Nginx和配置

  1、Nginx介紹

  Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。由俄羅斯的工程師Igor Sysoev研發,供俄國大型的入口網站Rambler使用。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同類型的網頁伺服器中表現較好。

  2、安裝部署  

  在CentOS7通過命令列安裝Nginx伺服器。

  (1)新增Nginx倉儲,新增 epel repository

sudo yum install epel-release

  (2)檢查是否已安裝過nginx 

find -name nginx

  (3)如果有安裝則刪除

yum remove nginx

  (4)安裝nginx

sudo yum install nginx

  (5)啟動nginx

sudo systemctl start nginx
sudo systemctl enable nginx #可用

  (6)將nginx 設定為啟動系統自動啟動nginx

echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local

  (7)檢視本機IP,為了後續配置nginx.conf所用

ifconfig

  (8)修改nginx.conf配置檔案

cd /etc/nginx/ #定位到nginx安裝目錄
vim nginx.conf #通過vim開啟nginx.conf配置檔案進行配置

  (9)主要配置節點,192.168.119.1:8081 和 192.168.119.1:8082 分別部署在 IIS7的兩個ASP.NET MVC 開發的站點(在另一臺電腦),設計軟體架構解決方案後續介紹。

複製程式碼
upstream 192.168.119.128{
    server 192.168.119.1:8081;
    server 192.168.119.1:8082;
}


server{
    listen   80;
    server_name  192.168.119.128;
    location /{
        proxy_pass   http://192.168.119.128;
    }
    
}

(10)重啟nginx服務

service nginx restart

如下對功能進行驗證測試。

  四、實現測試展示

   1、訪問系統情況:通過VIP(192.168.1.120)訪問系統頁面。因為設定了輪詢排程,所以重新整理頁面訪問不同站點。

        

  2、將 MASTER(192.168.1.104)關機前後,檢視相關VLS情況:

  (1)關機前:

  (2)關機後:

  我們看到將104伺服器從 LVS移除掉。此時則將後續請求轉發到103伺服器。

  3、關機後,BACKUP伺服器 keepalived日誌顯示無法連線104,並移除掉

  

  5、開機後,將自動檢測到伺服器正常,並加入LVS中。

  

相關推薦

Keepalived+LVS+Nginx負載均衡可用

  一、Keepalived介紹    Keepalived是分散式部署系統解決系統高可用的軟體,結合LVS(Linux Virtual Server)使用,其功能類似於heartbeat,解決單機宕機的問題。   二、Keepalived技術原理    keepalived是以VRRP協議為實現基礎

Keepalived+Nginx實現前端負載均衡可用

keepalived+nginx實現前端負載均衡的高可用一、實驗前準備時間同步、關閉iptables+selinux、各主機能相互解析在192.168.0.101和192.168.0.102上安裝Keepalived和Nginx,通過Nginx負載均衡至192.168.0.103及192.168.0.104上

nginx反向代理tomacat+keepalived實現動靜分離、負載均衡可用

時間 超時 error css 權限命令 上傳 轉發 onf ioc 本文的動靜分離主要是通過nginx+tomcat來實現,其中nginx處理圖片、html、JS、CSS等靜態文件,tomcat處理jsp、servlet等動態請求 服務器名稱

解決Nginx + Keepalived主從雙機熱備+自動切換,實現負載均衡可用

解決Nginx + Keepalived主從雙機熱備+自動切換,實現負載均衡及高可用 IP 伺服器 服務 192.168.1.10 lb-node1 Nginx、kee

linux下 使用keepalived 實現nginx 負載均衡+主備可用

1.什麼是負載均衡高可用         nginx作為負載均衡器,所有請求都到了nginx,可見nginx處於非常重點的位置,如果nginx伺服器宕機後端web服務將無法提供服務,影響嚴重。   

Nginx(七):keepalived實現Nginx負載均衡伺服器的雙機可用

前言 之前咱們通過 Nginx(六):Nginx HTTP負載均衡和反向代理的配置與優化 和 Nginx+tomcat組合實現高併發場景的動靜分離和負載均衡方案 這兩篇文章瞭解了Nginx對高併發應用伺服器tomcat的負載均衡優化,所有的請求都會先經過Nginx,N

haproxy+keepalived實現負載均衡可用

keepalived+haproxy HAProxy是一個使用C語言編寫的自由及開放源代碼軟件,其提供高性能性、負載均衡,以及基於TCP和HTTP的應用程序代理。相較與 Nginx,HAProxy 更專註與反向代理,因此它可以支持更多的選項,更精細的控制,更多的健康狀態檢測機制和負載均衡算法。 H

用haproxy結合keepalived實現基於LNMP的負載均衡可用

lnmp的負載均衡以及高可用今天我們講haproxy結合keepalived實現LNMP的負載均衡和高可用,現在的公司大部分都基於haproxy實現負載均衡。下面以一個事例去給大家詳細講解如何去實現:一、用haproxy結合keepalived實現基於lnmp的負載均衡和高可用服務,要求: (1)實現動

DR+keepalived實現web群集的負載均衡可用

Lvs-DR keepalived 我們搭建好的Lvs-DR群集是有一臺lvs調度器的,生產環境中如果調度器出現故障,整個群集將癱瘓。通過keepalived做lvs調度器的雙機熱備就可以很好的解決這個問題。keepalived采用VRRP虛擬路由冗余協議,以軟件的方式實現Linux服務器的多機熱備功

Keepalived負載均衡可用

flags scrip vsa 基於ip 主機 lvs 詳細介紹 ipaddress type 1.keepalived服務介紹Keepalived的項目實現的主要目標是簡化LVS項目的配置並增強其穩定性,即Keepalived是對LVS項目的擴展增強。Keepalived

【 58沈劍 架構師路】TCP接入層的負載均衡可用、擴充套件性架構

一、web-server的負載均衡 網際網路架構中,web-server接入一般使用nginx來做反向代理,實施負載均衡。整個架構分三層: 上游呼叫層,一般是browser或者APP 中間反向代理層,nginx 下游真實接入叢集,web-server,常見web-server的

LVS的DR模式中的負載均衡可用

** 一 LVS的三種IP負載均衡技術比較 ** 我們先分析實現虛擬網路服務的主要技術,指出IP負載均衡技術是在負載排程器的實現技術中效率最高的。在已有的IP負載均衡技術中,主要有通過網路地址轉換(Network Address Transl

Nginx反向代理Tomcat實現現負載均衡可用)以及利用redis+Session同步會話共享配置詳解

簡介: 一、Redis介紹 redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、zset(sortedset --有序集合)和hash(雜湊型別)。與m

saltstack部署實現nginx和apache的負載均衡可用(批量實現)

一 saltstack的介紹 SaltStack是一個伺服器基礎架構集中化管理平臺,具備配置管理、遠端執行、監控等功能,基於Python語言實現,結合輕量級訊息佇列(ZeroMQ)與Python第三方模組(Pyzmq、PyCrypto、Pyjinjia2、python-m

15套java互聯網架構師、並發、集群、負載均衡可用、數據庫設計、緩存、性能優化、大型分布式 項目實戰視頻教程

二階 並發 支持 線程並發 important http 系統架構 四十 mongodb入門 * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架構師、集群、高可用、高可擴

利用keepalived實現nginx調度器可用(一)

efault fig html oot 服務 emctl alt rom rip 利用keepalived實現nginx調度器高可用 聲明:提供四臺主機,其中兩臺nginx做前端調度器(一臺做主調度器,一臺做備用調度器), 另外兩臺主機做we

利用keepalived實現nginx調度器可用(二)

font 相同 () ins db_name lob list default ast 構建LNAMMP架構:1) Nginx既是前端調度器,又是反向代理緩存服務器;2) 將php的session緩存於memcached中;3) 使用php-fpm上部署Discuz論壇

keepalived實現nginx調度器可用(二)

amp web測試 keep 服務 vrrp value res 聲明 href keepalived實現nginx調度器高可用(二) 構建LNAMMP架構:1) Nginx既是前端調度器,又是反向代理緩存服務器;2) 將php的session緩存於memcach

分布式、集群、負載均衡可用的概念

活性 百萬 ava RF lan 最好 壓力 消息傳遞 我們 分布式(不一定有集群):   是指將不同的業務分布在不同的地方(應用服務器)。 集群cluster: 一群機器的集合。 負載均衡(集群):(Load balance cluster, LBC)

NGINX 負載均衡

ngx 算法 均衡 http 節點 backup pst 指定 自己 1、Nginx 負載均衡的組件模塊 ngx_http_proxy_module:proxy代理模塊,用於把請求後拋給服務器節點或upstream服務器池。ngx_http_upstream_module: