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

时间:2016-11-04 16:58:30

标签: nginx docker uwsgi

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

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在同一个用户生成的桥接网络中运行容器;和NGINX docker run -p 80:80 --network main --link uwsgi.app --name nginx.app -d nginxrepo

当我尝试在本地计算机上发出请求时,我从NGINX日志中收到以下错误消息:'[error] 7#7:* 1 connect()失败(111:连接被拒绝),同时连接到上游,客户端:172.18.0.1,服务器:localhost,请求:“GET /端点HTTP / 1.1”,上游:“uwsgi://172.18.0.2:9090”,主机:“127.0.0.1”'

看起来它似乎没有连接到uWSGI。不知道从哪里开始。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

配置uwsgi以侦听0.0.0.0而不是localhost。这将使它监听所有容器接口。您正在拒绝连接,因为它只是在监听uwsgi容器的localhost,而不是容器的eth0。