下載
http://nginx.org/en/download.html
nginx的負載均衡策略
輪詢(預設)
每個請求按照請求時間順序分配到不同的後端伺服器,如果後端伺服器掛了,則自動剔除。
此策略還可以設定:權重,指定輪詢的頻率,weight和訪問率成正比,用於後端伺服器效能不均勻的情況。
ip_hash
客戶端ip地址被用作hash key來判斷客戶端請求應該傳送到哪個伺服器,這種方法保證了來自相同客戶端的請求總是傳送到相同伺服器。
least_conn
最少連線策略,nginx會盡量不讓負載繁忙的應用伺服器上負載過多的請求,相反的,會把新的請求傳送到比較不繁忙的伺服器。
配置示例如下:
http { upstream serverlist{ ip_hash; ##least_conn; ## 遮蔽上述兩個引數即採用預設的策略:輪詢 server www.test1.com weight=3;// 或者ip+埠 , 不需要加入http/https字首 server www.test2.com weight=2; server www.test3.com; // 預設 weight=1 } server { listen 80; location / { proxy_pass http://serverlist; } } }
故障下線、備份服務、訪問失敗等配置
1.down
假如有一臺主機是出了故障,或者下線了,要暫時移出,那可以把它標為down,表示請求是會略過這臺主機的。
upstream serverlist{ server www.test1.com; // 或者ip+埠 , 不需要加入http/https字首 server www.test2.com down; }
2.backup
backup是指備份的機器,相對於備份的機器來說,其他的機器就相當於主要伺服器,只要當主要伺服器不可用的時候,才會用到備用伺服器。
upstream serverlist{ server www.test1.com; // 或者ip+埠 , 不需要加入http/https字首 server www.test2.com backup; }
3.max_fails和fail_timeout
預設情況下,max_fails的值為1,表示的是請求失敗的次數,請求1次失敗就換到下臺主機。另外還有一個引數是fail_timeout,表示的是請求失敗的超時時間,在設定的時間內沒有成功,那作為失敗處理。
upstream serverlist{ server www.test1.com max_fails=2; // 或者ip+埠 , 不需要加入http/https字首 server www.test2.com backup; }