【问题标题】:Is there a way to specify port range in nginx config upstream block?有没有办法在 nginx 配置上游块中指定端口范围?
【发布时间】:2020-10-19 12:25:02
【问题描述】:

我正在寻找一种在 nginx 上游块中指定端口范围的方法。

有没有办法转这个:

upstream backend {

    least_conn;

    server 127.0.0.1:3000;
    server 127.0.0.1:3001;
    server 127.0.0.1:3002;
    server 127.0.0.1:3003;
    server 127.0.0.1:3004;
    server 127.0.0.1:3005;
}

变成这样?:

upstream backend {

    least_conn;

    server 127.0.0.1:[3000:3005]
}

【问题讨论】:

  • 没有。您可以使用许多其他工具来生成 nginx 配置。

标签: nginx reverse-proxy


【解决方案1】:

一种使用Openresty 操作主机的方法,它基于 Nginx 并且能够运行 Lua 插件。使其工作的代码 sn-p 如下所示

upstream backend {
        balancer_by_lua_block {
        local balancer = require "ngx.balancer"
        local start_port=3000
        local max_port=start_port+5
        repeat
            local ok, err = balancer.set_current_peer('127.0.0.1', start_port)
            if not ok then
                ngx.log(ngx.ERR, "failed to set the current peer: ", err)
                return ngx.exit(500)
        end
        start_port=start_port+1
        until start_port>max_port
    } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    相关资源
    最近更新 更多