Module ngx_http_upstream_conf_module

ngx_http_upstream_conf_module模块允许通过简单的 HTTP 接口即时配置上游服务器组,而无需重启 nginx。 httpstream服务器组必须位于共享内存中。

Note

在 1.13.10 之前,此模块是我们commercial subscription的一部分。在 1.13.3 中已被ngx_http_api_module模块取代。

Example Configuration

upstream backend {
    zone upstream_backend 64k;

    ...
}

server {
    location /upstream_conf {
        upstream_conf;
        allow 127.0.0.1;
        deny all;
    }
}

Directives

Syntax:upstream_conf;
Default:
Context:location

打开周围位置的上游配置的 HTTP 接口。可以访问此位置limited

配置命令可用于:

  • 查看组配置;

  • 查看,修改或删除服务器;

  • 添加新服务器。

Note

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

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

http://127.0.0.1/upstream_conf?upstream=backend

支持以下参数:

  • stream=

    • 选择一个stream上游服务器组。如果没有此参数,则选择http上游服务器组。
  • upstream= name

    • 选择一个要使用的组。此参数是必需的。
  • id= number

    • 选择用于查看,修改或删除的服务器。
  • remove=

    • 从组中删除服务器。
  • add=

    • 将新服务器添加到组中。
  • backup=

    • 添加备份服务器所需。

Note

在 1.7.2 版之前,还需要backup=来查看,修改或删除现有的备份服务器。

  • server= address

    • httpstream上游服务器的“ address”参数相同。

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

  • service= name

    • httpstream上游服务器(1.9.13)的“ service”参数相同。
  • 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)。在这种模式下,仅对服务器的bound请求将被代理。

  • up=

    • httpstream上游服务器的“ down”参数相反。
  • route= string

    • http上游服务器的“ route”参数相同。

前三个参数选择一个对象。这可以是整个 http 或流上游服务器组,也可以是特定服务器。如果没有其他参数,则显示所选组或服务器的配置。

例如,要查看整个组的配置,请发送:

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个上游服务器组。 stream上游服务器组的类似示例需要使用“ stream=”参数。