一踏堡、Nginx反向代理實現(xiàn)均衡負(fù)載及調(diào)度方法
1唱矛、ngx_http_upstream_module模塊
將多個服務(wù)器定義成服務(wù)器組缺前,而由proxy_pass, fastcgi_pass等指令進(jìn)行引用
2、upstream name { ... }
定義后端服務(wù)器組监氢,會引入一個新的上下文
默認(rèn)調(diào)度算法是wrr
Context: http
upstream httpdsrvs {
server ...
server...
}
3布蔗、server address [parameters];
在upstream上下文中server成員,以及相關(guān)的參數(shù)浪腐;Context:upstream
address的表示格式:
unix:/PATH/TO/SOME_SOCK_FILE
IP[:PORT]
HOSTNAME[:PORT]
parameters:
weight=number 權(quán)重纵揍,默認(rèn)為1
max_conns 連接后端報務(wù)器最大并發(fā)活動連接數(shù),1.11.5后支持
max_fails=number 失敗嘗試最大次數(shù)议街;超出此處指定的次數(shù)時泽谨,server將被標(biāo)記為不可用,默認(rèn)為1
fail_timeout=time 后端服務(wù)器標(biāo)記為不可用狀態(tài)的連接超時時長,默認(rèn)10s
backup 將服務(wù)器標(biāo)記為“備用”特漩,即所有服務(wù)器均不可用時才啟用
down 標(biāo)記為“不可用”吧雹,實現(xiàn)灰度發(fā)布
4、ip_hash 源地址hash調(diào)度方法
5涂身、least_conn 最少連接調(diào)度算法雄卷,當(dāng)server擁有不同的權(quán)重時其為wlc,當(dāng)所有后端主機連接數(shù)相同時蛤售,則使用wrr龙亲,適用于長連接
6、hash key [consistent] 基于指定的key的hash表來實現(xiàn)對請求的調(diào)度悍抑,此處的key可以直接文本、變量或二者組合
作用:將請求分類杜耙,同一類請求將發(fā)往同一個upstream server搜骡,使用consistent參數(shù),將使用ketama一致性hash算法佑女,適用于后端是Cache服務(wù)器(如varnish)時使用
hash $request_uri consistent;
hash $remote_addr;
hash $cookie_name; #key為name的cookie
7记靡、keepalive 連接數(shù)N;
為每個worker進(jìn)程保留的空閑的長連接數(shù)量谈竿,可節(jié)約nginx端口,并減少連接管理的消耗
案例:實現(xiàn)調(diào)度
vim /apps/nginx/conf/nginx.conf
http {
upstream httpdsrvs{
server 192.168.43.104;
server 192.168.43.105;
}
vim /apps/nginx/conf.d/test.conf
server {
server_name www.x.com ;
root /data/test ;
location / {
proxy_pass http://httpdsrvs;
}
}
[root@centos6 ~]# while true ; do curl www.x.com; sleep 0.5; done
192.168.43.105
192.168.43.104
192.168.43.105
192.168.43.104
192.168.43.105
192.168.43.104
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者