您的位置:首页 > 运维架构 > Nginx

Nginx负载均衡(二)

2017-03-09 00:00 295 查看
摘要: nginx中upstream配置项相关参数说明

##前言

了解nginx中upstream配置项相关参数,更好的运用负载均衡.

##Upstream配置解析

###指令

Syntax:	upstream name { ... }
Default:	—
Context:	http

###upstream分配说明

upstream可以定义一组服务器。服务器可以监听不同的端口。此外,服务监听TCP和Unix域套接字可以混合。
例如:
upstream backend {
server backend1.example.com weight=5;
server 127.0.0.1:8080       max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;

server backup1.example.com  backup;
}

默认情况下,使用加权轮询平衡的放在服务器之间分配请求;
在上面的例子中,7次访问中5次分配到backend1.example.com, 第二和第三服务器各一次;
如果与服务器通信时发生错误,请求会被分配到下一个服务器直到每个服务器都尝试完;
如果无法从服务器获得成功响应,客户端会接收到上一次服务器通信的结果.

###upstream中服务器(server)的配置说明

upstream中的单个配置方式:
Syntax:	server address [parameters];
Default:	—
Context:	upstream

定义服务器的地址和对应参数,地址可以被指定为域名或者IP地址和一个可选地址,或者指定为一个Unix套接字路径在'unix:'前缀后面;
如果没有指定端口,那么默认端口为80端口.
解析到多个IP地址的域名立即定义多个服务器.

###upstream中服务器(server)配置的相关参数(parameters)说明

####1. weight = number

服务器权重, 如果没有设置默认为1.

####2. max_conns = number

设置同时访问代理服务器的活跃连接数.默认是0即没有限制(version >= 1.11.5).
如果服务器不驻留在共享内存中,现在就会作用在每个工作进程上.
***备注**********************************************************************
1. 如果空闲KeepAlive连接,多个worker,和共享内存的启用,活跃和空闲连接到代理服务器的总数可能超过max_conns设定的值
2. 从版本1.5.9和版本1.11.5之前,这个参数可以作为商业认购部分。
***备注**********************************************************************

####3. fail_timeout = number

指定与服务器通信的不成功尝试的期间发生在考虑服务器不可用的时间,服务器被认为不可用的时间段.

####4. max_fails = number

设置是失败最大尝试次数,与fail_timeout联合使用.默认为1.

####5. backup

将服务器标记为备份服务器.当主服务器不可用时,它将被传递请求。

####6. down

标记服务器永久(permanently)不可用

####7. resolve

监控对应服务器域名IP地址的改变,并且在不重启nginx的前提下自动更改upstream的配置(version >= 1.5.12); 服务器组必须常驻在共享内存中.

为了让这个参数起作用,解析指令必须在http模块中指定,如:
http {
resolver 10.0.0.1;
upstream u {
zone ...;
...
server example.com resolve;
}
}

####8. route = string

指定服务器的路由名.

####9. slow_start = time

设置服务器将其权重从0恢复到设置权重的时间,当不健康的服务器变为健康,或服务器在一段时间内被认为不可用后恢复可用时。默认值为0,即慢启动被禁用。
***备注**********************************************************************
1. 该参数不能与hash或者ip_hash负载方式联合使用,负载方式后面在讨论
2. 如果一个组只有一个服务器,那么max_fails,fail_timeout,slow_start都会被忽略
***备注**********************************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息