一、Nginx反向代理实现均衡负载及调度方法
1、ngx_http_upstream_module模块
将多个服务器定义成服务器组,而由proxy_pass, fastcgi_pass等指令进行引用
2、upstream name { ... }
定义后端服务器组,会引入一个新的上下文
默认调度算法是wrr
Context: http
upstream httpdsrvs {
server ...
server...
}
3、server address [parameters];
在upstream上下文中server成员,以及相关的参数;Context:upstream
address的表示格式:
unix:/PATH/TO/SOME_SOCK_FILE
IP[:PORT]
HOSTNAME[:PORT]
parameters:
weight=number 权重,默认为1
max_conns 连接后端报务器最大并发活动连接数,1.11.5后支持
max_fails=number 失败尝试最大次数;超出此处指定的次数时,server将被标记为不可用,默认为1
fail_timeout=time 后端服务器标记为不可用状态的连接超时时长,默认10s
backup 将服务器标记为“备用”,即所有服务器均不可用时才启用
down 标记为“不可用”,实现灰度发布
4、ip_hash 源地址hash调度方法
5、least_conn 最少连接调度算法,当server拥有不同的权重时其为wlc,当所有后端主机连接数相同时,则使用wrr,适用于长连接
6、hash key [consistent] 基于指定的key的hash表来实现对请求的调度,此处的key可以直接文本、变量或二者组合
作用:将请求分类,同一类请求将发往同一个upstream server,使用consistent参数,将使用ketama一致性hash算法,适用于后端是Cache服务器(如varnish)时使用
hash $request_uri consistent;
hash $remote_addr;
hash $cookie_name; #key为name的cookie
7、keepalive 连接数N;
为每个worker进程保留的空闲的长连接数量,可节约nginx端口,并减少连接管理的消耗
案例:实现调度
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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。