nginx負載均衡策略你知道多少?
來源:
簡介
nginx做反向代理在我們開發運維的同志日常生活中已經非常常見,當我們後端有多臺服務的時候還可以用nginx做負債均衡,而upstream模組就是其中的核心模組。
upstream中的常用引數
常用引數 | 引數作用 |
---|---|
server | 負載均衡後端的伺服器的IP或域名,不寫埠預設是80,高併發場景用域名,再透過DNS進行負載均衡 |
weight | 後端伺服器的權重,預設為1,權重越大接收的請求越多,比如:weight=2 |
max_fails | 檢查節點的健康狀態並允許請求失敗的次數,達到該次數將節點下線,預設為1,0表示禁止失敗嘗試,例如:max_fails=3 |
fail_timeout | max_fails失敗次數達到限制後暫停該節點伺服器時間,預設是10秒。 |
backup | 熱備配置,當服務池中所有的伺服器出現問題後會自動上線backup伺服器。 |
down | 標誌伺服器不可用,不參與負載均衡,這個引數通常配合IP_HASH使用。 |
max_conns | 限制最大連線數,通常對後端伺服器硬體不一致的情況進行配置。 |
keepalive | 限制空閒長連線的最大數量。 |
keepalive_timeout | 空閒長連線的最長保持時間。 |
keepalive_requests | 每個長連線最多可以處理的請求數。 |
官方支援的分配的方式
1、輪詢
輪詢是upstream的預設分配的方式,即每個請求按照時間順序輪流分配到不同的後端伺服器,如果某個後端伺服器down掉後,能自動剔除。
2、weight
weight就是輪詢的加強版,即可以指定輪詢比率,weight和訪問機率成正比,主要應用於後端伺服器配置差異較大的情況下,後面會舉例。
upstream backend_developer {
ip_hash
server 172.27.26.174:8099 weight=2;
server 172.27.26.243:8099 weight=1;
}
搜尋百度前面的所有舉例權重都是1,2,3的排名方式,反而讓人疑惑,是按1,2,3的順序輪訓??
3、ip_hash
每個請求按照訪問ip(即Nginx的前置伺服器或者客戶端IP)的hash結果分配,這樣每個訪客會固定訪問一個後端伺服器,可以解決session一致問題。這個存在的問題就是比如某一個部門在一個出口IP段內,這樣就會造成可能整個部門的都在訪問某一臺伺服器,造成服務不均衡
upstream backend_developer {
ip_hash
server 172.27.26.174:8099;
server 172.27.26.243:8099;
}
實戰
前面也說到,我們是一臺4C8G+一臺8C16G的機器,單臺效能壓測的結果是8C的機器的tps是4C的機器的2倍,所以我們需要將兩臺機器的權重為2:1(即3次請求,有一次請求在4C的機器,有兩次請求會在8C的機器)
nginx的配置
傳送請求
我們利用postman工具連續傳送6次
檢視結果
根據結果我們可以看到,6次請求分別權重的weight=1的機器上請求了2次,權重weight=2的機器上輪訓了4次。
好了,本次就總結到這裡,後面我們有時間的話可以跟大家一起聊聊,upstream的實現原理,有興趣的可以在下方給我留言哦
參考
官網:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70001864/viewspace-2846258/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Nginx負載均衡策略Nginx負載
- Nginx多種負載均衡策略搭建Nginx負載
- 負載均衡知多少?負載
- NGINX 負載均衡Nginx負載
- 【Nginx】負載均衡Nginx負載
- nginx負載均衡Nginx負載
- Nginx專題(2):Nginx的負載均衡策略及其配置Nginx負載
- Nginx如何實現負載均衡釋出策略?Nginx負載
- gRPC負載均衡(自定義負載均衡策略)RPC負載
- Nginx 負載均衡策略之加權輪詢分析Nginx負載
- nginx反向代理和負載均衡策略實戰案例Nginx負載
- Nginx 做負載均衡的幾種輪詢策略Nginx負載
- Nginx負載均衡模式Nginx負載模式
- Nginx--負載均衡Nginx負載
- nginx 負載均衡搭建Nginx負載
- 解析 Nginx 負載均衡Nginx負載
- Nginx負載均衡詳解Nginx負載
- Nginx負載均衡高可用Nginx負載
- nginx實現負載均衡Nginx負載
- 【譯】Consul負載均衡策略負載
- 【Nginx】Nginx反向代理和負載均衡部署Nginx負載
- Nginx服務系列——負載均衡Nginx負載
- 使用Nginx配置TCP負載均衡NginxTCP負載
- nginx學習之負載均衡Nginx負載
- 使用nginx進行負載均衡Nginx負載
- 使用nginx負載均衡nodejsNginx負載NodeJS
- Nginx 負載均衡原理解讀Nginx負載
- [Open Source] 負載均衡之Nginx負載Nginx
- Nginx負載均衡配置說明Nginx負載
- Nginx + IIS 實現負載均衡Nginx負載
- 提升網站效能:Nginx五種高效負載均衡策略詳解!網站Nginx負載
- 012.Nginx負載均衡Nginx負載
- Nginx/Httpd負載均衡tomcat配置Nginxhttpd負載Tomcat
- Nginx 學習系列(二) ------------- 負載均衡Nginx負載
- Nginx 學習系列(二) ————- 負載均衡Nginx負載
- Nginx+Tomcat部署負載均衡NginxTomcat負載
- nginx配置+uwsgi+負載均衡配置Nginx負載
- Nginx常用命令、負載均衡Nginx負載