模块 ngx_http_upstream_conf_module

示例配置
指令
     upstream_conf

ngx_http_upstream_conf_module 模块允许通过简单的 HTTP 接口动态配置上游服务器组,而无需重启 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 中开启上游配置的 HTTP 接口。对该 location 的访问应受到 限制

配置命令可用于

由于组中的地址不需要唯一,因此组中的特定服务器通过其 ID 引用。ID 是自动分配的,在添加新服务器或查看组配置时显示。

配置命令由作为请求参数传递的参数组成,例如

http://127.0.0.1/upstream_conf?upstream=backend

支持以下参数

stream=
选择一个 stream 上游服务器组。如果没有此参数,则选择一个 http 上游服务器组。
upstream=name
选择要操作的组。此参数是必须的。
id=number
选择要查看、修改或删除的服务器。
remove=
从组中删除服务器。
add=
向组中添加新的服务器。
backup=
需要添加备用服务器。
在 1.7.2 版本之前,backup= 也需要查看、修改或删除现有的备用服务器。
server=address
httpstream 上游服务器的“address”参数相同。

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

service=name
httpstream 上游服务器的“service”参数相同 (1.9.13)。
weight=number
httpstream 上游服务器的“weight”参数相同。
max_conns=number
httpstream 上游服务器的“max_conns”参数相同。
max_fails=number
httpstream 上游服务器的“max_fails”参数相同。
fail_timeout=time
httpstream 上游服务器的“fail_timeout”参数相同。
slow_start=time
httpstream 上游服务器的“slow_start”参数相同。
down=
httpstream 上游服务器的“down”参数相同。
drain=
http 上游服务器置于“排水”模式 (1.7.5)。在此模式下,只有 绑定 到该服务器的请求才会被代理到该服务器。
up=
httpstream 上游服务器的“down”参数相反。
route=string
http 上游服务器的“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=”参数中指定其地址。如果没有指定其他参数,则将添加一个服务器,并将其他参数设置为其默认值(请参见 httpstream 的“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=”参数。