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
?或者我在这件事上遗漏了什么。如果您在这方面有任何帮助,我们将不胜感激。您的应用程序运行是否正常?或者,您是否能够通过映射的端口直接从主机访问您的应用程序?您的应用程序是否处于正常运行状态?或者,您是否能够通过映射的端口直接从主机访问应用程序?