模块 ngx_http_upstream_conf_module
示例配置 指令 upstream_conf |
ngx_http_upstream_conf_module
模块允许通过一个简单的 HTTP 接口动态配置 upstream 服务器组,无需重启 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 |
在所在的 location 中开启 upstream 配置的 HTTP 接口。对此 location 的访问应受 限制。
配置命令可用于:
- 查看组配置;
- 查看、修改或删除服务器;
- 添加新服务器。
由于组中的地址不要求唯一,组中的特定服务器通过其 ID 进行引用。ID 会自动分配,并在添加新服务器或查看组配置时显示。
配置命令包含作为请求参数传递的参数,例如:
http://127.0.0.1/upstream_conf?upstream=backend
支持以下参数:
-
stream=
- 选择一个 stream upstream 服务器组。若未指定此参数,则选择一个 http upstream 服务器组。
-
upstream=
名称
- 选择要操作的组。此参数为强制参数。
-
id=
数字
- 选择用于查看、修改或删除的服务器。
-
remove=
- 从组中删除服务器。
-
add=
- 向组中添加新服务器。
-
backup=
- 添加备份服务器时必需。
在 1.7.2 版本之前,查看、修改或删除现有备份服务器时也需要
backup=
参数。 -
server=
地址
- 与 http 或 stream upstream 服务器的 “
address
” 参数相同。添加服务器时,可以将其指定为域名。在这种情况下,与域名对应的 IP 地址变化将被监控,并自动应用到 upstream 配置中,无需重启 nginx (1.7.2)。这需要在 http 或 stream 块中配置 “
resolver
” 指令。另请参见 http 或 stream upstream 服务器的 “resolve
” 参数。 -
service=
名称
- 与 http 或 stream upstream 服务器的 “
service
” 参数相同 (1.9.13)。 -
weight=
数字
- 与 http 或 stream upstream 服务器的 “
weight
” 参数相同。 -
max_conns=
数字
- 与 http 或 stream upstream 服务器的 “
max_conns
” 参数相同。 -
max_fails=
数字
- 与 http 或 stream upstream 服务器的 “
max_fails
” 参数相同。 -
fail_timeout=
时间
- 与 http 或 stream upstream 服务器的 “
fail_timeout
” 参数相同。 -
slow_start=
时间
- 与 http 或 stream upstream 服务器的 “
slow_start
” 参数相同。 -
down=
- 与 http 或 stream upstream 服务器的 “
down
” 参数相同。 drain=
- 将 http upstream 服务器置于 “排水” 模式 (1.7.5)。在此模式下,只有 绑定 到该服务器的请求才会被代理过去。
-
up=
- 与 http 或 stream upstream 服务器的 “
down
” 参数意义相反。 -
route=
字符串
- 与 http upstream 服务器的 “
route
” 参数相同。
前三个参数选择一个对象。此对象可以是整个 http 或 stream upstream 服务器组,也可以是特定服务器。若未指定其他参数,则显示所选组或服务器的配置。
例如,要查看整个组的配置,发送
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 upstream 服务器组。对于 stream upstream 服务器组的类似示例,需要使用 “stream=
” 参数。