nginx upstream
nginx的upstream官方地址為:http://nginx.org/cn/docs/http/ngx_http_upstream_module.html
輪詢分為多種,分為普通輪詢(一個接一個的進行訪問,即按加權輪轉的方式將請求分發到各服務器),ip_hash輪詢,url_hash輪詢,以及fair輪詢等方法。
nginx upstream輪詢配置。
upstream在http中,與server同等級別
upstream 域名 {
server IP地址;
}
server {
location / {
proxy_pass http://域名;
}
}
fail輪訓: 按照響應時間進行分配請求,響應時間短,即rt小的后端服務器優先分配請求;
upstream backup {
fail;
server 172.16.76.150;
server 172.16.76.151;
}
與ip_hash類似,但是按照訪問url的hash結果來分配請求,使得每個url定向到同一個后端服務器,主要應用於后端服務器為緩存時的場景下。
upstream backup {
server 172.16.76.150;
server 172.16.76.151;
hash $request_uri;
hash_method crs32;
} 其中,hash_method為使用的hash算法,需要注意的是:此時,server語句中不能加weight等參數
在upstream的server IP地址/域名/socket后面跟的參數:
weight = number
設定服務器的權重 ,默認是1
max_fails= number
設定nginx與服務器的通信次數,在fail_timeout參數定義的時間段內,如果失敗的次數達到次指,nginx就認為這台服務器不能進行使用。在下一個fail_timeout時間段內,nginx服務器不會訪問這台服務器。
fail_timeout = time
統計失敗嘗試次數的時間段。在這段時間內,服務器失敗次數達到指定的嘗試次數,服務器就被認為不可用
服務器認為不可用的時間段
backup
服務器備機地址
down
標志服務器永久不可用,可以跟ip_hash一起使用。
