關于Nginx upstream的幾種配置方式
第一種:輪詢
upstream test{
server 192.168.0.1:3000;
server 192.168.0.1:3001;
}
第二種:權重
upstream test{
server 192.168.0.1 weight=2;
server 192.168.0.2 weight=3;
}
這種模式可解決服務器性能不等的情況下輪詢比率的調配
第三種:ip_hash
upstream test{
ip_hash;
server 192.168.0.1;
server 192.168.0.2;
}
這種模式會根據來源IP和后端配置來做hash分配,確保固定IP只訪問一個后端
第四種:fair
需要安裝Upstream Fair Balancer Module
upstream test{
server 192.168.0.1;
server 192.168.0.2;
fair;
}
這種模式會根據后端服務的響應時間來分配,響應時間短的后端優先分配
第五種:自定義hash
需要安裝Upstream Hash Module
upstream test{
server 192.168.0.1;
server 192.168.0.2;
hash $request_uri;
}
這種模式可以根據給定的字符串進行Hash分配
具體應用:
server{
listen 80;
server_name .test.com;
charset utf-8;
location / {
proxy_pass http://test/;
}
}
此外upstream每個后端的可設置參數為:
1.down: 表示此臺server暫時不參與負載。
2.weight: 默認為1,weight越大,負載的權重就越大。
3.max_fails: 允許請求失敗的次數默認為1.當超過最大次數時,返回proxy_next_upstream模塊定義的錯誤。
4.fail_timeout: max_fails次失敗后,暫停的時間。
5.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器,應急措施。