如何在不同的Docker容器中运行uWSGI和NGINX

我已经在本地设置了uWSGI和NGINX,并且我的configuration在提供Web请求时没有问题。 但是,当我装载uWSGI和NGINX(在单独的Docker容器中)时,我似乎无法build立连接。 我的NGINX服务器configuration如下所示:

server { listen 80; server_name localhost; location / { include uwsgi_params; uwsgi_pass uwsgi.app:9090; } } 

我的uWSGI ini文件如下所示:

 [uwsgi] socket = localhost:9090 module = uwsgi:app processes = 4 threads = 2 master = true buffer-size = 32768 stats = localhost:9191 die-on-term = true vaccuum = true 

我运行在同一个用户生成的网桥使用以下uWSGI docker run -p 9090:9090 --network main --name uwsgi.app -d uwsgirepo ; 和docker run -p 80:80 --network main --link uwsgi.app --name nginx.app -d nginxrepo NGINX。

当我尝试在本地机器上发出请求时,我从NGINX日志中得到如下错误信息:'[error] 7#7:* 1连接失败(111:连接被拒绝),当连接到上游时,客户端:172.18 .0.1,server:localhost,请求:“GET / endpoint HTTP / 1.1”,上游:“uwsgi://172.18.0.2:9090”,主机:“127.0.0.1”

它看起来并没有连接到uWSGI。 不知道从哪里去。 有什么想法吗?

configurationuwsgi监听0.0.0.0而不是localhost。 这将使它监听所有的容器接口。 你得到一个拒绝的连接,因为它只在uwsgi容器的本地主机上监听,而不是容器的eth0。