首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Nginx:带有regex的上游服务器指令

Nginx:带有regex的上游服务器指令
EN

Server Fault用户
提问于 2020-09-15 17:06:06
回答 1查看 463关注 0票数 0

我有一个基于码头的体系结构:一个可配置的容器数量被一个nginx容器负载平衡。所有这些容器都存在于同一个本地网络,backend (由docker-compose创建)。

我想要加载平衡的容器总是侦听端口77894,并且总是有一个表单model_*的名称( *可以是任何正整数)。需要正确配置单个nginx容器中的nginx.conf

这个nginx.conf工作得很好,但是我必须在model服务中显式地指定每个D7副本:

代码语言:javascript
运行
复制
http {

    upstream models {
        server model_1:77894;
        server model_2:77894;
        server model_3:77894;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://models;
        }
    }
}


events { }

这不是动态的;我必须事先知道model_*副本的数量。

当我尝试这个(和其他变体)时:

代码语言:javascript
运行
复制
upstream {
    server ~ ^model_[0-9]:77894
}

nginx抛出错误:invalid parameter "^model_[0-9]:77894" in /etc/nginx/nginx.conf:4

有没有办法告诉nginx将代理反向到所有名称为model_*:77894的容器?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2020-09-15 17:37:57

server指令只支持显式的上游IP地址:端口对或Unix域套接字路径。

您应该使用配置管理系统,它更新nginx配置文件并同时设置容器,因此始终保持nginx配置保持同步。

一种选择是将所有可能的server条目添加到upstream部分,让nginx检测后端是否可用。如果nginx太频繁地尝试使用不存在的后端,则可以从默认的10秒值增加fail_timeout值。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1034013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档