Nginx容器作为另一个docker容器localhost的代理-502坏网关

Nginx容器作为另一个docker容器localhost的代理-502坏网关,docker,nginx,Docker,Nginx,我有一个在localhost:4000上运行web应用程序的容器,我想通过另一个容器中的nginx访问它。我已经创建了一个docker网络,并运行了以下命令,将它们置于同一网络下mynetwork docker run——名称myapp-p8080:4000-d——网络mynewnetwork Ubuntune:1.9——myapp docker run——名称nginx-p80:80-d——网络mynewnetwork nginx——nginx 使用以下nginx.conf worker_pr

我有一个在
localhost:4000上运行web应用程序的容器,我想通过另一个容器中的
nginx
访问它。我已经创建了一个
docker网络
,并运行了以下命令,将它们置于同一网络下
mynetwork

docker run——名称myapp-p8080:4000-d——网络mynewnetwork Ubuntune:1.9
——myapp

docker run——名称nginx-p80:80-d——网络mynewnetwork nginx
——nginx

使用以下
nginx.conf

worker_processes 1;

events { worker_connections 1024; }

http {

    sendfile on;

    upstream docker-myapp {
        server myapp:4000;
    }

    server {
        listen 80;    
        location / {
            proxy_pass         http://docker-myapp;
            proxy_http_version 1.1;
            proxy_redirect off;
            proxy_set_header   Upgrade $http_upgrade;
            proxy_set_header   Connection keep-alive;
            proxy_set_header   Host $host;
            proxy_cache_bypass $http_upgrade;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Proto $scheme;
        }
    }

}
出于某种原因,当我访问docker主机ip时显示
502坏网关
,当我们创建
docker网络
时,它会打开驻留在同一网络中的容器之间的所有端口,对吗?如果是,说明我的应用程序未运行的原因。
我是否应该将
myapp
容器中的
hosts
文件更改为具有
localhost
而不是
127.0.0.1
docker ip
?或者我在这件事上遗漏了什么。如果您在这方面有任何帮助,我们将不胜感激。

您的应用程序运行是否正常?或者,您是否能够通过映射的端口直接从主机访问您的应用程序?您的应用程序是否处于正常运行状态?或者,您是否能够通过映射的端口直接从主机访问应用程序?