基於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模組的引數:
各個引數介紹:
以上內容希望幫助到大家,更多PHP大廠PDF面試文件,PHP進階架構視訊資料,PHP精彩好文免費獲取可以關注公眾號:PHP開源社群,或者訪問:
「其他文章」
- 基於Nginx的負載均衡原理與實戰
- PHP控制反轉(IOC)和依賴注入(DI)
- 深入理解PHP7核心之Reference
- php中類的不定引數使用示例
- php單例模式的常見應用場景
- laravel 配置MySQL讀寫分離
- PHP的垃圾回收機制(建議收藏)
- 【shell指令碼】字串和陣列的使用
- PHP-FPM是什麼東東?
- PHP 編寫守護程序
- PHP命令列指令碼接收傳入引數的三種方式
- php專案中類的自動載入
- 複習下Linux去除重複項命令uniq
- 深入理解PHP核心:變數及資料型別
- Swoole協程與傳統fpm同步模式比較
- PHP中Session ID的實現原理
- 寫一手好SQL,該從哪裡入手最好?
- PHP命令列指令碼接收傳入引數的三種方式
- 使用 Shell 在多伺服器上批量操作
- PHP實現使用者異地登入提醒功能的方法