我已经在本地设置了 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/