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

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

当我尝试在本地机器上发出请求时,我从 NGINX 日志中收到以下错误消息:'[error] 7#7: *1 connect() failed (111: Connection refused) while connected to upstream, client: 172.18 .0.1,服务器:localhost,请求:“GET/endpoint HTTP/1.1”,上游:“uwsgi://172.18.0.2:9090”,主机:“127.0.0.1”'

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

最佳答案

配置uwsgi监听0.0.0.0而不是本地主机。这将使它监听所有容器接口(interface)。你得到一个连接被拒绝,因为它只监听 uwsgi 容器的本地主机,而不是容器的 eth0。

关于nginx - 如何在不同的 Docker 容器中运行 uWSGI 和 NGINX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40428086/

相关文章:

django - 写入日志文件时权限被拒绝

c - GCC v4.9.2 上无法识别的命令行选项 ‘-rdynamic’

docker - 如何将多个容器中的写入同步到群集上的同一卷?

bash - 并发 az 登录执行

python - Django 不加载内部 .css 文件

php - 请求页面返回 403 Bad Behavior

reactjs - React.js 应用程序显示 404 未在 nginx 服务器中找到

reactjs - React.js、nginx 和 SSL

nginx - 在 Azure Kubernetes 集群 (AKS) 上的 Nginx Ingress 上配置 TCP 端口

docker - Mendix:在 docker 容器中启用调试器