ngx_http_upstream_conf_module 模块

ngx_http_upstream_conf_module 模块允许通过简单的 HTTP 接口即时配置上游服务器组,而无需重新启动 nginx。http 或 stream 服务器组必须驻留在共享内存中。

在 10 月 13 日之前,此模块作为我们商业订阅的一部分提供。它在 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 指令

语 法:upstream_conf;
默认值:—
上下文:location

打开周边 location 的 upstream 配置的 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

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

service=name

与 http 或 stream 上游服务器 (1.9.13) 的 “service” 参数相同。

weight=number

与 http 或 stream 上游服务器的 “weight” 参数相同。

max_conns=number

与 http 或 stream 上游服务器的 “max_conns” 参数相同。

max_fails=number

与 http 或 stream 上游服务器的 “max_fails” 参数相同。

fail_timeout=time

与 http 或 stream 上游服务器的 “fail_timeout” 参数相同。

slow_start=time

与 http 或 stream 上游服务器的 “slow_start” 参数相同。

down=

与 http 或 stream 上游服务器的 “down” 参数相同。

drain=

将 http 上游服务器置于 “draining” 模式(1.7.5)。在这种模式下,只有绑定到服务器的请求才会被代理到它。

up=

与 http 或 stream 上游服务器的 “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=” 参数中指定其地址。如果没有指定其他参数,服务器将添加其他参数设置为其默认值(请参阅 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 上游服务器组。stream 上游服务器组的类似示例需要 “stream=” 参数。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号