編程學習網 > 服務器 > Nginx > 基于Nginx的負載均衡原理與實戰
2020
08-20

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


本文主要講解以下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模塊的參數:


各個參數介紹:

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取