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

kel*_*ket 0 nginx uwsgi docker

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

server {
    listen       80;
    server_name  localhost;
    location / {
        include uwsgi_params;
        uwsgi_pass uwsgi.app:9090;
    }
} 
Run Code Online (Sandbox Code Playgroud)

我的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
Run Code Online (Sandbox Code Playgroud)

我对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日志中收到以下错误消息:'[错误] 7#7:* 1连接到上游的客户端时,connect()失败(111:连接被拒绝):客户端:172.18 .0.1,服务器:本地主机,请求:“ GET / endpoint HTTP / 1.1”,上游:“ uwsgi://172.18.0.2:9090”,主机:“ 127.0.0.1”'

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

pro*_*erq 5

将uwsgi配置为侦听0.0.0.0而不是localhost。这将使其在所有容器接口上侦听。您得到的连接被拒绝,因为它仅侦听uwsgi容器的localhost,而不侦听容器的eth0。