基於Nginx的負載均衡原理與實戰

語言: CN / TW / HK

本文主要講解以下3個方面介紹Nginx的負載均衡:

  • 負載均衡介紹
  • Nginx如何實現負載均衡
  • Nginx負載均衡配置項介紹

 

01負載均衡介紹

什麼是負載均衡?顧名思義就是讓客戶端的請求均勻地分佈到各個伺服器上。從下圖可以看出,客戶端的請求先到達負載均衡器,由負載均衡器通過一系列演算法將請求轉發到某臺上遊的業務伺服器上。

實現負載均衡的方式有很多,下面將列出幾種方式,並對比優劣:

  • 硬體層面可以通過F5實現負載均衡,效能優異。F5的底層是在晶片層面做了優化,這樣就使得它的效能不依賴主機作業系統的處理能力,但是F5價格高昂,一般小公司用不起
  • 軟體層面可以通過LVS來實現負載均衡,這是一款中國人開發的軟體。因為是軟體層面的負載均衡,效能受到主機運算能力的制約
  • 除了LVS之外,還可以通過Nginx實現負載均衡,為了實現高可用需要和keepalived配合使用,Nginx實現負載均衡也是本文講解的重點
  • 還可以在DNS層面做負載均衡,在域名解析的時候解析到不同的伺服器上。優點是配置簡單,非常容易實現,缺點是沒有檢測機制,不夠均衡,容錯能力比較差

 

02Nginx如何實現負載均衡

 

今天我們主要討論Nginx如何實現負載均衡,Nginx的負載均衡是通過 upstream 來實現的,在 upstream 中指定若干個 server,格式如下:

 

myserver 就是通過 upstream 定義的一組負載均衡模板,其中:

在配置完upstream後,還要讓客戶端過來的請求反向代理到 myserver,格式如下:

這樣就完成了負載均衡的配置,但是在實際需求中除了上面的設定外,還會增加一些額外設定:

  • 負載均衡策略設定
  • 請求上游伺服器攜帶請求頭資訊
  • upstream 模組中其他引數設定

 

Nginx的負載均衡策略有5種方式:

 

03Nginx負載均衡配置項介紹

下面我們將介紹一下proxy模組的引數:

 

各個引數介紹:

以上內容希望幫助到大家,更多PHP大廠PDF面試文件,PHP進階架構視訊資料,PHP精彩好文免費獲取可以關注公眾號:PHP開源社群,或者訪問:

2021金三銀四大廠面試真題集錦,必看!

騰訊一面的Redis秒殺面試題你會麼?

四年精華PHP技術文章整理合集——PHP框架篇

四年精華PHP技術文合集——微服務架構篇

四年精華PHP技術文合集——分散式架構篇

四年精華PHP技術文合集——高併發場景篇

四年精華PHP技術文章整理合集——資料庫