Nginx(四):負載均衡Load balancing

1、概念基礎

Load balancing,即負載均衡,是一種計算機技術,用來在多個計算機(計算機集群)、網絡連接、CPU、磁盤驅動器或其他資源中分配負載,以達到最優化資源使用、最大化吞吐率、最小化響應時間、同時避免過載的目的。
為了提升網站的服務能力,網站可以采用集群部署,就像話劇院有多個入口一樣。這時候,就需要一個協調者,來均衡的分配這些用戶的請求,可以讓用戶的可以均勻的分派到不同的服務器上。

單個服務器解決不了,我們增加服務器的數量,然后將請求分別分發到各個服務器上,將原來請求集中到單個服務器上的情況改為將請求分發到多個服務器上,降幅在分發到不同的服務器,也就是我們所說的負載均衡。
在這里插入圖片描述

2、負載均衡實例

2.1、實現效果
在瀏覽器輸入123.com/te/test.html,負載均衡效果,平均到8080和8081端口中。

2.2、提前準備

  1. 兩臺Tomcat服務器,一臺8080,一臺8081;
  2. 在兩臺tomcat服務器里面的webapps目錄,分別建立te文件夾,并在其中創建test.html,用于測試.

2.3、在nginx配置文件中進行負載均衡配置

    upstream myserver{server 127.0.0.1:8080;server 127.0.0.1:8081;}#gzip  on;server {listen       80;server_name  localhost;location / {root   html;proxy_pass http://myserver;index  index.html index.htm;}

2.4、效果展示

在這里插入圖片描述

兩次刷新
在這里插入圖片描述

3、nginx分配策略

3.1、輪詢(默認)
每個請求按照時間順序逐一分配到服務器中,如果后端服務器dowm掉,能自動剔除。
3.2、weight
weight代表權重值,默認為1,權重值越高,默認分配客戶端越多,指輪詢機率。

    upstream myserver{server 127.0.0.1:8080 weight=5server 127.0.0.1:8081 weight=10}

3.3、ip_hash

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session問題。

    upstream myserver{ip_hashserver 127.0.0.1:8080;server 127.0.0.1:8081;}

3.4、fair(第三方)
按照后端服務器的響應時間來分配,響應時間越多的優先分配。

    upstream myserver{server 127.0.0.1:8080;server 127.0.0.1:8081;fair}

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

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

相關文章

JAVA知識基礎(六):抽象

1.概述 抽象類、抽象方法以及接口,這三個知識點是每個程序員必備的基礎,無論是在實際編程的時候,還是在面試的時候,都會出現這類問題,面試官很可能就會問你,interface和abstract的區別 當父類知道子類應該…

MIP開發教程(三) 使用MIP-CLI工具調試組件

一 . 在 mip-extensions 倉庫中創建新的組件二 . 預覽調試組件 三 . 在 MIP 頁中引用自己編寫的 MIP 組件 四 . 組件提交到 GitHub 倉庫時需要進行校驗 站長開發的非通用組件,使用 組件上線平臺 提交,上線后代碼位于 GitHub/mip-extension-platform 倉…

JAVA知識基礎(七):封裝

1.概述 封裝(Encapsulation)是指一種將抽象性函式接口的實現細節部分包裝、隱藏起來的方法。 封裝可以被認為是一個保護屏障,防止該類的代碼和數據被外部類定義的代碼隨機訪問。 要訪問該類的代碼和數據,必須通過嚴格的接口控制…

MIP開發教程(二) 使用MIP-CLI工具調試MIP網頁

初始化 MIP 配置 新建一個 MIP 網頁 編寫 MIP 網頁代碼 校驗 MIP 網頁 調試 MIP 網頁 1. 初始化 MIP 配置 首先在html目錄下進行初始化 MIP 配置: $ mip init 此時會創建mip.config文件: 2. 新建一個 MIP 網頁 在mip-project/html文件夾下輸入如下…

Nginx(五):動靜分離

1、概念基礎 Nginx動靜分離簡單來說就是把動態請求和靜態請求分開,不能理解成只是單純的把動態頁面靜態頁面的物理分離。嚴格意義上說應該是動態請求跟靜態請求的分開,可以理解成使用Nginx處理靜態頁面,Tomcat處理動態頁面。動靜分離從目前實…

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

我們知道在我們使用nginx代理多態tomcat服務器時,如果某臺tomcat服務器發生宕機,那么nginx的分配機制可以自動將其剔除。但是如果發生了nginx的宕機狀況,又該如何解決呢。 1、配置高可用的集群 1.1、什么是高可用 高可用HA(Hig…

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、填寫項…