gpt4 book ai didi

docker - 无法将 flask Web与容器中的Nginx连接

转载 作者:行者123 更新时间:2023-12-02 20:04:07 29 4
gpt4 key购买 nike

环境:
ubuntu docker和容器(未特权,端口= 6000-> 8080),flask(serve.py),gunicorn,nginx。服务器IP:123.456.789.101

我希望其他人可以访问在docker容器中运行的Web(123.456.789.101:6000),并访问静态镜像(123.456.789.101:6000/static/1.jpg)。

当我仅使用flask和gunicorn并运行guincorn -w 2 -b 0.0.0.0:8080 serve:app时,我可以成功访问web(123.456.789.101:6000)。

但是,如果我使用Nginx代理,它就会失败。
具体如下:

首先,$ gunicorn -w 2 -b 127.0.0.1:8080 serve:app成功,我可以将其 curl 在容器系统中。

其次,$ service nginx start,并将conf文件加载到站点启用中。

nginx conf详细信息:

server {
listen 6000;
server_name 123.456.789.101;

location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
root /www;
expires 30d;
}
}

最终,它失败了。我无法访问网络(123.456.789.101:6000)。

为了找出错误的地方,我尝试运行 gunicorn -w 2 -b 127.0.0.1:8080 serve:app,并更改nginx conf文件。
server {
listen 80;
server_name 127.0.0.1;

location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
root /www;
expires 30d;
}
}

curl 127.0.0.1在容器系统中。成功。这意味着nginx可以正常工作,可以将80映射到8080。

所以,怎么了,我该怎么解决。谢谢。

最佳答案

Application:

Try Running into Docker
gunicorn -w 2 -b 0.0.0.0:8080 serve:app

If you are using Dockerfile:
expose 8080
If you are using docker-compose.yml
expose:
- "8080"

Nginx Configuration (Replace DOCKER_CONTAINER_IP):


server {
listen 6000;
server_name 123.456.789.101;

location / {
proxy_pass http://DOCKER_CONTAINER_IP:8080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /static/ {
root /www;
expires 30d;
}
}

关于docker - 无法将 flask Web与容器中的Nginx连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51202763/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com