閱讀273 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Nginx學習之負載均衡

負載均衡

負載均衡 建立在現有網絡結構之上,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬、增加吞吐量、加強網絡數據處理能力、提高網絡的靈活性和可用性。

負載均衡,英文名稱為Load Balance,其意思就是分攤到多個操作單元上進行執行,例如Web服務器、FTP服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工作任務。

架構圖

Nginx負載均衡.png

負載均衡策略

Nginx 提供輪詢(round robin)、IP 哈希(client IP)和加權輪詢 3 種方式,默認情況下,Nginx 采用的是輪詢。

輪詢(默認)

每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能自動剔除。

upstream backserver { 
server 192.168.1.14; 
server 192.168.1.15; 
} 

加權輪詢

指定輪詢幾率,weight和訪問比率成正比,用於後端服務器性能不均的情況。

upstream backserver { 
server 192.168.1.14 weight=1; 
server 192.168.1.15 weight=2; 
} 

ip_hash

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端服務器,可以解決session的問題。

upstream backserver { 
ip_hash; 
server 192.168.0.14; 
server 192.168.0.15; 
} 

重試策略

可以為每個 backserver 指定最大的重試次數,和重試時間間隔,所使用的關鍵字是 max_fails 和 fail_timeout。

upstream backserver { 
server 192.168.1.14  weight=1  max_fails=2 fail_timeout=30s; 
server 192.168.1.15  weight=2  max_fails=2 fail_timeout=30s;
} 

失敗重試次數為3,且超時時間為30秒。

熱機策略

upstream backserver { 
server 192.168.1.14  weight=1  max_fails=2 fail_timeout=30s; 
server 192.168.1.15  weight=2  max_fails=2 fail_timeout=30s;

server 192.168.1.16 backup;
}

當所有的非備機(non-backup)都宕機(down)或者繁忙(busy)的時候,就會使用由 backup 標注的備機。必須要注意的是,backup 不能和 ip_hash 關鍵字一起使用。

小站:https://blog.52itstyle.com/

最後更新:2017-04-10 11:00:02

  上一篇:go 北亞工程師詳解數據恢複中RAID6結構
  下一篇:go Nginx學習之反向代理