模块 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=” 参数。