##請求分發詳解
配置負載均衡伺服器集群
upstream backend
對特定請求進行分發
server
}
nginx負載均衡在分發請求的時候,缺省會採用輪詢的方式。即:
請求順序
請求分發
第一次訪問:
x.x.x.x:1023
第二次訪問:
x.x.x.x:1024
第三次訪問:
x.x.x.x:1025
假如nginx本來要將請求分發到 x.x.x.x:1024 這台伺服器的,結果這台伺服器掛掉了,那麼nginx就會將此次請求再分發到x.x.x.x:1025,避免影響到使用者訪問。
nginx負載均衡判斷後端伺服器掛了的依據:
如果我們想要測試某個伺服器down掉,負載均衡會怎樣處理,可以登入到特定的後端伺服器,執行如下命令,假裝該伺服器已經down掉:
iptables -a input -p tcp --dport 1024 -j drop
upstream backend
方式
說明輪詢
按時間順序逐一分配
加權輪詢
權重值越大,被分配到的次數就越多
ip_hash
請求按訪問ip的hash結果來分配,同乙個ip固定的訪問某台後端伺服器
least_conn
哪台伺服器連線數少,就分發給哪台伺服器
url_hash
按照訪問url的hash結果來分配,同一url固定的訪問某台後端伺服器
hash關鍵數值
hash自定義的key
經過實際測試,ip_hash並不能完全保持cookies的連續性,最好還是將cookies存放在redis等記憶體型資料庫中
upstream heartide
可以通過如下方法,定位負載均衡到底將請求分配給了哪台伺服器,這有助於我們針對後端集群中特定的某台伺服器進行除錯。
add_header backend-server $upstream_addr;
物聯網架構成長之路 10 Nginx負載均衡
0.前言 關於nginx負載均衡的簡單配置,我以前部落格配置過基於http的負載均衡。這次的負載均衡有點不一樣,就是基於tcp的負載均衡。基於http負載均衡是預設的nginx版本支援的,配置也很簡單,但是基於tcp的負載均衡,配置起來就有一點點麻煩了。由於我們要用到四層tcp層負載均衡,所以要自己...
nginx 負載均衡 Nginx負載均衡策略
nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...
nginx負載均衡
nginx 的 upstream目前支援 4 種方式的分配 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。3 ip hash 每個請求按訪問ip的hash...