nginx中文文档-ngx_http_upstream_conf_module

ngx_http_upstream_conf_module模块允许通过一个简单的HTTP接口不需要重启nginx配置上游服务器组。http或stream服务器组必须位于共享内存。

该模块是商业版本的一部分。
示例配置

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 upstream服务器组。没有这个参数,会选择一个http upstream服务器组。

upstream=name
选择工作的组,该参数是强制的。

id=number
选择一个查看、修改或移除的服务器。

remove=
从组中移除一个服务器。

add=
添加服务器到组。

backup=
需要添加的备份服务器。
在1.7.2版本之前,backup=需要查看、修改或移除存在的备份服务器。

server=address
同http或stream上游服务器的“address”参数
当添加一个服务器,可以指定为域名。这种情况下,改变响应域名的IP地址会被监控并自动的应用到upstream配置,不需要重启nginx(1.7.2+)。这需要“resolver”指令在http或stream块中。参见http或stream上游服务器的“resolver”参数。

service=name
同http或stream上游服务器的“service”参数(1.9.13+)

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或stream上游服务器的“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=”参数。