Nginx3 - 負載均衡

在上兩篇文章已經介紹了Nginx基本原理和代理功能,本篇文章介紹Nginx的負載均衡功能。
在這裏插入圖片描述

一、負載均衡簡介

  • 負載均衡也是 Nginx常用的一個功能,當一臺服務器的單位時間內的訪問量越大時,服務器壓力就越大,大到超過自身承受能力時,服務器就會崩潰。
  • 爲了避免服務器崩潰,讓用戶有更好的體驗,我們通過負載均衡的方式來分擔服務器壓力。我們可以建立很多很多服務器,組成一個服務器集羣,當用戶訪問網站時,先訪問一箇中間服務器,在讓這個中間服務器在服務器集羣中選擇一個壓力較小的服務器,然後將該訪問請求引入該服務器。如此以來,用戶的每次訪問,都會保證服務器集羣中的每個服務器壓力趨於平衡,分擔了服務器壓力,避免了服務器崩潰的情況。負載均衡配置一般都需要同時配置反向代理,通過反向代理跳轉到負載均衡。

二、負載均衡原理

在上一篇代理功能介紹中,我說過負載均衡是建立在反向代理中的。每臺服務器處理來自客戶端的請求都應該是均衡的。

  • 原理:使用一個反向代理服務器指向多臺部署相同應用的服務器,客戶端請求直接向反向代理服務器發起,反向代理服務器根據負載均衡機制,將請求轉發到不同的應用服務器上
  • nginx負載均衡要兩臺或以上的應用服務器 , 並且在nginx.conf中寫入相關配置,主要是對proxy_pass,upstream的使用
    在這裏插入圖片描述

三、常見的幾種負載均衡的方法

  1. 輪詢(默認)——每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能自動剔除。
  2. weight ——指定輪詢機率,weight和訪問比率成正比,用於後端服務器性能不均的情況。
  3. ip_hash ——每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端服務器。
  4. backup——其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。
  5. down——表示單前的server暫時不參與負載6.fair(第三方)按後端服務器的響應時間來分配請求,響應時間短的優先分配。與weight分配策略類似。

四、負載均衡的輪詢配置示例

輪詢:使用循環、輪轉的方式分發請求到服務器中,也是Nginx的默認負載均衡的方法,配置示例:

http{
     upstream myapp{
         server srv1.example.com;
         server srv2.example.com;
         server srv3.example.com;
     }
     server{
         listen 80;
         location / {
             proxy_pass http://myapp;
         }
     }
 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章