该模块是商业版本的一部分。
示例配置
upstream backend { zone upstream_backend 64k; ... } server { location /upstream_conf { upstream_conf; allow 127.0.0.1; deny all; } }
upstream_conf
语法:upstream_conf
默认:—
上下文:location
在指定location中开启upstream的配置HTTP接口。访问这个location应该是受限的。
配置命令可以用于:
- 查看组配置
- 查看、修改、移除一个服务器
- 添加一个服务器
由于组中的地址不需要唯一,指定组中的服务器通过它们的id引用。当添加一个新服务器或查看组配置时,id会自动分配和显示。
配置命令的参数由请求参数构成,例如
http://127.0.0.1/upstream_conf?upstream=backend
支持下面的参数:
stream=
选择一个stream upstream服务器组。没有这个参数,会选择一个http upstream服务器组。
upstream=name
选择工作的组,该参数是强制的。
id=number
选择一个查看、修改或移除的服务器。
remove=
从组中移除一个服务器。
add=
添加服务器到组。
backup=
需要添加的备份服务器。
在1.7.2版本之前,backup=需要查看、修改或移除存在的备份服务器。
server=address
同http或stream上游服务器的“address”参数
当添加一个服务器,可以指定为域名。这种情况下,改变响应域名的IP地址会被监控并自动的应用到upstream配置,不需要重启nginx(1.7.2+)。这需要“resolver”指令在http或stream块中。参见http或stream上游服务器的“resolver”参数。
service=name
同http或stream上游服务器的“service”参数(1.9.13+)
weight=number
同http或stream上游服务器的“weight”参数
max_conns=number
同http或stream上游服务器的“max_conns”参数
max_fails=number
同http或stream上游服务器的“max_fails”参数
fail_timeout=time
同http或stream上游服务器的“fail_timeout”参数
slow_start=time
同http或stream上游服务器的“slow_start”参数
down=
同http或stream上游服务器的“down”参数
drain=
让http上游服务器进入“draining”模式(1.7.5+)。这种模式下,只有上行服务器会被代理。
up=
与http或stream上游服务器的“down”参数相反
route=string
同http或stream上游服务器的“route”参数
前三个参数选择一个对象。可以是整个http或stream上游服务器组,也可以是一个指定的服务器。没有其他参数,选择的组合服务器配置会展示。
例如,查看完整的组配置,发送:
http://127.0.0.1/upstream_conf?upstream=backend
查看指定服务器的配置,同样指定id:
http://127.0.0.1/upstream_conf?upstream=backend&id=42
添加一个新服务器,通过“server=”参数指定地址。没有其他参数指定,服务器将会设置其他参数为默认值(见http或stream的“server”指令)
例如,添加一个主服务器,发送:
http://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080
添加一个备份服务器,发送:
http://127.0.0.1/upstream_conf?add=&upstream=backend&backup=&server=127.0.0.1:8080
添加一个新的主服务器,设置参数无默认值并标记为down,发送:
http://127.0.0.1/upstream_conf?add=&upstream=backend&server=127.0.0.1:8080&weight=2&down=
移除一个指定id的服务器:
http://127.0.0.1/upstream_conf?remove=&upstream=backend&id=42
标记一个存在的服务为“down”,发送:
http://127.0.0.1/upstream_conf?upstream=backend&id=42&down=
改变一个存在的服务器的地址,发送:
http://127.0.0.1/upstream_conf?upstream=backend&id=42&server=192.0.2.3:8123
改变其他已存在的服务器参数,发送:
http://127.0.0.1/upstream_conf?upstream=backend&id=42&max_fails=3&weight=4
上面的例子是http上游服务器组的。简单的stream上游服务器组的例子需要“stream=”参数。