模块 ngx_http_upstream_conf_module

示例配置
指令
     upstream_conf

ngx_http_upstream_conf_module 模块允许通过一个简单的 HTTP 接口动态配置 upstream 服务器组,无需重启 nginx。 httpstream 服务器组必须位于共享内存中。

此模块曾作为我们的 商业订阅 的一部分提供,直到 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=地址
httpstream upstream 服务器的 “address” 参数相同。

添加服务器时,可以将其指定为域名。在这种情况下,与域名对应的 IP 地址变化将被监控,并自动应用到 upstream 配置中,无需重启 nginx (1.7.2)。这需要在 httpstream 块中配置 “resolver” 指令。另请参见 httpstream upstream 服务器的 “resolve” 参数。

service=名称
httpstream upstream 服务器的 “service” 参数相同 (1.9.13)。
weight=数字
httpstream upstream 服务器的 “weight” 参数相同。
max_conns=数字
httpstream upstream 服务器的 “max_conns” 参数相同。
max_fails=数字
httpstream upstream 服务器的 “max_fails” 参数相同。
fail_timeout=时间
httpstream upstream 服务器的 “fail_timeout” 参数相同。
slow_start=时间
httpstream upstream 服务器的 “slow_start” 参数相同。
down=
httpstream upstream 服务器的 “down” 参数相同。
drain=
http upstream 服务器置于 “排水” 模式 (1.7.5)。在此模式下,只有 绑定 到该服务器的请求才会被代理过去。
up=
httpstream 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=” 参数中指定其地址。若未指定其他参数,服务器将以默认值添加其其他参数 (参见 httpstreamserver” 指令)。

例如,要添加新的主服务器,发送

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