繁体   English   中英

AWS ECS nginx:在上游找不到 [emerg] 主机

[英]AWS ECS nginx: [emerg] host not found in upstream

我正在尝试使用 Docker 在 AWS ECS 上运行 Flask 和 nginx 应用程序。 应用程序 容器都运行在同一台 docker 机器上。 当任务启动时,nginx 容器以退出代码 1 退出,并出现以下错误:nginx: [emerg] host not found in upstream "web:5000" in /etc/nginx/conf.d/nginx.conf:2。

这是我docker-compose.yml文件:

version: "3"

services:
    web:
        image: 131099/generateme
        expose:
            - 5000
        networks:
            - generateme
        logging:
            driver: awslogs
            options: 
                awslogs-group: generateme
                awslogs-region: eu-west-2
                awslogs-stream-prefix: web
    server:
        image: 131099/generateme-server
        ports:
            - 80:80
        environment:
            - DOCKER_PROVIDER = ecs
        external_links:
            - web
        depends_on:
            - web
        networks:
            - generateme
        logging:
            driver: awslogs
            options: 
                awslogs-group: generateme
                awslogs-region: eu-west-2
                awslogs-stream-prefix: server

这是我的nginx.conf文件:

upstream generateme {
    server web:5000;
}

server {

    listen 80;

    location / {
        resolver 127.0.0.11;
        proxy_pass http://generateme;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
    }

}

任何想法是什么导致了这个? 我阅读了其他类似的帖子,但我不知道该怎么做,因为我是 ECS 的新手。

编辑:当我查看日志时,似乎服务器容器总是在 Web 容器之前启动。 如果有一个depends_on 属性,那怎么会发生呢?

尝试更换

external_links:
   - web

经过

links:
   - web

更详细的答案Docker-compose links vs external_links

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM