模块 ngx_http_upstream_conf_module
示例配置 指令 upstream_conf |
模块 ngx_http_upstream_conf_module
允许通过简单的 HTTP 接口实时配置上游服务器组,无需重新启动 nginx。 http 或 stream 服务器组必须驻留在共享内存中。
该模块在 1.13.10 版本前作为我们的 商业订阅 的一部分可用。在 1.13.3 版本中被 ngx_http_api_module 模块取代。
示例配置
upstream backend { zone upstream_backend 64k; ... } server { location /upstream_conf { upstream_conf; allow 127.0.0.1; deny all; } }
指令
语法: | upstream_conf; |
---|---|
默认: | — |
上下文: | location |
启用周围位置中的上游配置的 HTTP 接口。对此位置的访问应该被 限制。
配置命令可以用于:
- 查看组配置;
- 查看、修改或移除服务器;
- 添加新服务器。
由于组中的地址不需要是唯一的,因此组中的特定服务器通过其 ID 引用。ID 会自动分配并在添加新服务器或查看组配置时显示。
配置命令由作为请求参数传递的参数组成,例如:
http://127.0.0.1/upstream_conf?upstream=backend
支持以下参数:
-
stream=
- Selects a stream upstream server group. Without this parameter, selects an http upstream server group.
-
upstream=
name
- Selects a group to work with. This parameter is mandatory.
-
id=
number
- Selects a server for viewing, modifying, or removing.
-
remove=
- Removes a server from the group.
-
add=
- Adds a new server to the group.
-
backup=
-
Required to add a backup server.
在 1.7.2 版本之前,
backup=
也是查看、修改或移除现有备份服务器所必需的。 -
server=
address
-
Same as the “
address
” parameter of the http or stream upstream server.当添加服务器时,可以将其指定为域名。在这种情况下,与域名对应的 IP 地址的更改将被监视并自动应用于上游配置,而无需重新启动 nginx(1.7.2)。这需要在 http 或 stream 块中使用 “
resolver
” 指令。另请参见 http 或 stream 上游服务器的 “resolve
” 参数。 -
service=
name
-
Same as the “
service
” parameter of the http or stream upstream server (1.9.13). -
weight=
number
-
Same as the “
weight
” parameter of the http or stream upstream server. -
max_conns=
number
-
Same as the “
max_conns
” parameter of the http or stream upstream server. -
max_fails=
number
-
Same as the “
max_fails
” parameter of the http or stream upstream server. -
fail_timeout=
time
-
Same as the “
fail_timeout
” parameter of the http or stream upstream server. -
slow_start=
time
-
Same as the “
slow_start
” parameter of the http or stream upstream server. -
down=
-
Same as the “
down
” parameter of the http or stream upstream server. -
drain=
- Puts the http upstream server into the “draining” mode (1.7.5). In this mode, only requests bound to the server will be proxied to it.
-
up=
-
The opposite of the “
down
” parameter of the http or stream upstream server. -
route=
string
-
Same as the “
route
” parameter of the http upstream server.
前三个参数选择一个对象。这可以是整个 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=
” 参数。