Nginx(六):配置nginx高可用集群

我們知道在我們使用nginx代理多態tomcat服務器時,如果某臺tomcat服務器發生宕機,那么nginx的分配機制可以自動將其剔除。但是如果發生了nginx的宕機狀況,又該如何解決呢。
在這里插入圖片描述

1、配置高可用的集群

1.1、什么是高可用
高可用HA(High Availability)是分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計減少系統不能提供服務的時間。

假設系統一直能夠提供服務,我們說系統的可用性是100%。

如果系統每運行100個時間單位,會有1個時間單位無法提供服務,我們說系統的可用性是99%。

很多公司的高可用目標是4個9,也就是99.99%,這就意味著,系統的年停機時間為8.76個小時。

百度的搜索首頁,是業內公認高可用保障非常出色的系統,甚至人們會通過http://www.baidu.com 能不能訪問來判斷“網絡的連通性”,百度高可用的服務讓人留下啦“網絡通暢,百度就能訪問”,“百度打不開,應該是網絡連不上”的印象,這其實是對百度HA最高的褒獎。
1.2、通過keepalived實現高可用
Nginx 負載均衡實現高可用,需要借助Keepalived地址漂移功能。
將keepalived 中的vip作為nginx負載均衡的監聽地址,并且域名綁定的也是虛擬ip(vip)的地址。
在這里插入圖片描述
1.需要兩臺nginx服務器
2.需要keepalived軟件
3.需要虛擬ip地址

2、配置高可用的集群實例

2.1、準備工作

  • 需要兩臺服務器。
  • 在兩臺服務器安裝nginx。
  • 在兩臺服務器安裝keepalived。

2.2、keepalived的安裝

  1. 使用yum命令進行安裝:
yum install keepalived -y

2.安裝完成后在/etc目錄中會生成keepalived目錄,有文件keepalived.conf
在這里插入圖片描述

2.2.1修改/etc/keepalived/keepalivec.conf 配置文件

vrrp_instance VI_1 {
global_defs {notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.17.129
smtp_connect_timeout 30
router_id LVS_DEVEL
}vrrp_script chk_http_port {script "/usr/local/src/nginx_check.sh"interval 2	#(檢測腳本執行的間隔)	weight 2		}		vrrp_instance VI_1 {		state BACKUP	# 備份服務器上將 MASTER 改為 BACKUP	interface ens33	//網卡	virtual_router_id 51   # 主、備機的 virtual_router_id 必須相同	priority 90	# 主、備機取不同的優先級,主機值較大,備份機值較小	advert_int 1		
15		authentication {
auth_type PASS
auth_pass 1111
}virtual_ipaddress {
192.168.17.50 // VRRP H 虛擬地址
}
}

2.3、在/usr/local/src 添加檢測腳本

#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi

2.4、最終測試
1)在瀏覽器地址欄輸入 虛擬 ip 地址 192.168.17.50
在這里插入圖片描述
2)把主服務器(192.168.17.129)nginx 和 keepalived 停止,再輸入 192.168.17.50
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535918.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535918.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535918.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MIP開發教程(一) MIP-CLI工具安裝與環境部署

依賴安裝 安裝 MIP-CLI 創建開發文件結構 1. 依賴安裝 MIP-CLI 使用 NPM 安裝,依賴 node 環境: node 安裝-windowsnode 安裝-mac MIP-CLI 開發組件需要 git: git 安裝-windowsgit 安裝-mac 2. 安裝 MIP-CLI MIP-CLI:mip 開…

JAVA知識基礎(八):繼承

1.概述 1.1、繼承的由來 至于由來簡單一句話:多個類中存在相同屬性和行為時,將這些內容抽取到單獨一個類中,那么多個類無需再定義這些屬性和行為。 繼承描述的是事物之間的所屬關系,這種關系是 is-a 的關系。 1.2、繼承的定義 …

MIP 2016年終總結

MIP 項目組成立至今已經有一年多的時間,在過去的一年里,感謝各位的關注。 1. MIP JS 迭代 MIP JS 運行環境是 MIP 頁面和 MIP 組件運行的基石。在 2016 年 4 月,MIP JS 發布了 mipmain-v0.0.1.js, 隨后經過多次迭代,在 2016 年 …

JAVA知識基礎(九):this、super 關鍵字總結

1.this關鍵字 this有三種常見用法 1.this調用本類中的屬性,也就是類中的成員變量 2.this調用本類中的其他方法 3.this調用本類中的其他構造方法,調用時要放在構造方法的首行。 2.super關鍵字 在java里面,對于super關鍵字通常有兩種用法 …

向MIP開源項目提交Issues

Issues 是 GitHub 管理需求,討論技術方案的方式,附:官方解釋。MIP 是在 GitHub 上的開源項目,也使用 Issues 來做任務管理。 一、Issues 在 MIP 項目中的應用 MIP 項目中的 Issues 主要有兩種用法: 1. * 記錄 bug,…

Nginx(七):nginx原理解析

前面我們講到了nginx的反向代理、負載均衡、動靜分離以及高可用,本篇我們來了解一下nginx的原理,看一下nginx是怎么執行的。 1、mater和worker 2、worker是如何進行工作的 3、相關問題 3.1、一個 master 和多個 woker 有好處 (1&#xff0…

為什么MIP-Cache存在

在去年十月的一篇 博客文章 提到 MIP 加速器是由 MIP-HTML, MIP-JS 和 MIP-Cache 三個模塊共同產生加速效果的。MIP-HTML 和 MIP-JS 都是開源的,在 GitHub 上可以訪問。但 MIP-Cache 是百度提供的,所有從百度搜索結果頁打開的頁面都是 MIP-Cache 的頁面。…

JAVA知識基礎(十):多態

1.概述 1.1多態的定義 多態是同一個行為具有多個不同表現形式或形態的能力。 多態就是同一個接口,使用不同的實例而執行不同操作。 多態性是對象多種表現形式的體現。 1.2多態的優點 消除類型之間的耦合關系可替換性可擴充性接口性靈活性簡化性 1.3多態存在的三個…

MIP技術交流分享(3月9日)

3月9日上周四下午,MIP 團隊工程師與去哪兒酒店云、眾薈的 Web 前端工程師進行了一次面對面的技術交流。 在這次交流中,MIP 工程師主要分享了 MIP 技術原理,MIP 加速原理,以及 MIP 為開發者提供的工具集。去哪兒的工程師也提出了通…

JAVA知識基礎(十一):異常

1.異常的概念 簡單說就是不正常運行,最終導致JVM的非正常停止。 在Java等面向對象的編程語言中,異常本身是一個類,產生異常就是創建異常對象并拋出了一個異常對象。Java處理異常的方式是中斷處理。 異常指的并不是語法錯誤,語法錯了,編譯不…

SpringBoot基礎篇(一):Spring Boot入門

我們今天開始對SpringBoot的學習,本篇主要是Spring Boot的入門部分。 1、SpringBoot簡介 引用SpringBoot在百度百科中的含義: Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使…

SpringBoot基礎篇(二):HelloWorld細節探究

1、場景啟動器 1.1依賴 <!--Hello World項目的父工程是org.springframework.boot--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</versio…

MIP 與 AMP 合作進展(3月7日)

“到目前為止&#xff0c;全網通過 MIP 校驗的網頁已超10億。除了代碼和緩存&#xff0c; MIP 還想做更多來改善用戶體驗移動頁面。” 3月7日&#xff0c;MIP 項目負責人在首次 AMP CONF 上發言。 那么 MIP 和 AMP 的關系是什么呢&#xff1f; AMP 是一個開源性項目&#xff…

SpringBoot番外篇(一):使用Spring Initializer快速創建Spring Boot項目(IDEA版)

IDE都支持使用Spring的項目創建向導快速創建一個Spring Boot項目&#xff1b; 選擇我們需要的模塊&#xff1b;向導會聯網創建Spring Boot項目&#xff1b; ps:需要聯網 1、創建新項目時選擇Spring Initializ&#xff0c;選擇好java版本&#xff0c;點擊next。r 2、填寫項…

開發教程(四) MIP組件平臺使用說明

組件審核平臺用于上傳 MIP 組件。經過自動校驗之后&#xff0c;提交審核&#xff0c;通過審核的組件會定時推送到線上&#xff0c;供網站使用。 平臺地址&#xff1a;https://www.mipengine.org/platform/ 1. 使用說明 MIP 組件審核平臺用于提交開發完成的組件&#xff0c;如…

MIP 技術交流分享(3月15日)

3月15日下午&#xff0c;MIP 團隊工程師與58趕集的 Web 前端工程師進行了一次面對面的技術交流。 在這次交流中&#xff0c;MIP 工程師主要分享了 MIP 技術原理&#xff0c;MIP 加速原理&#xff0c;以及 MIP 為開發者提供的工具集。 58趕集的工程師提出了以下問題&#xff1a…

Redis(零):背景

什么是NoSQL&#xff0c;什么是Redis&#xff0c;我們在了解這個系列之前&#xff0c;先來看一下Redis是從何而來&#xff1f;Why redis is needed? 1、單機MySQL年代 在最早的單機MySQL年代&#xff0c;存在著訪問量小&#xff0c;單個數據庫等特點。 但是特有著眾多的缺…

Redis(一):什么是NoSQL與NoSQL分類

1、什么是NoSQL NoSQL Not only SQL (不僅是SQL)&#xff0c;即泛指非關系型數據庫。隨著Web2.0時代誕生&#xff01;NoSQL在當今大數據的環境下發展十分迅速&#xff01; NoSQL 是一項全新的數據庫革命性運動&#xff0c;早期就有人提出&#xff0c;發展至2009年趨勢越發高漲…

MIP 內容聲明

從搜索結果頁點出的 MIP 頁面&#xff0c;其頁面上的任何內容&#xff08;包括但不限于廣告、在線咨詢、統計等組件&#xff09;均視為在原站點上的投放和使用。 MIP &#xff08;Mobile Instant Pages - 移動網頁加速器&#xff09;, 是一套應用于移動網頁的開放性技術標準。…

Redis(二):Redis入門與性能測試

1、Redis概述 Redis是什么&#xff1a; Redis&#xff08;Remote Dictionary Server )&#xff0c;即遠程字典服務&#xff0c;是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫&#xff0c;并提供多種語言的API。 免費開源&#xf…