为什么Python中的Flask应用程序返回Bad Gateway

问题描述 投票:0回答:1

由于 NGINX 中的此错误,我遇到了错误的网关错误:

2024/10/01 02:53:38 [crit] 383343#383343: *153 connect() to unix:/home/ubuntu/ip-whitelister/ip-whitelister.sock failed (13: Permission denied) while connecting to upstream

但是,袜子已经获得了 777 许可 enter image description here

这是我的 NGINX 配置:

server {
    server_name mydomain.com;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/ubuntu/ip-whitelister/ip-whitelister.sock;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = mydomain.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name mydomain.com;
    return 404; # managed by Certbot
}
flask nginx
1个回答
0
投票

首先,你必须检查套接字文件是否有效。

文件

/home/ubuntu/ip-whitelister/ip-whitelister.sock
似乎是一个符号链接。

ls -l /home/ubuntu/ip-whitelister/ip-whitelister.sock

检查实际位置在哪里,以及真实socket文件的权限设置。

然后你必须检查父目录的权限。

如果“/home/ubuntu”或“/home/ubuntu/ip-whitelister”以及真实位置的父目录的权限设置类似于750或770,则也无法访问该目录。

或者您可以将文件移动到公共目录,以便每个用户都可以访问它,仅用于测试。没关系。

权限设置完成后,如果NGINX仍然无法访问socket文件,也许你需要检查AppArmor。它可能会限制应用程序访问某些内容。

最后,如果它根本不起作用,并且您确实想发布您的网站,您可以尝试在本地主机接口上公开 Flask 端口,并为此进行反向代理。

© www.soinside.com 2019 - 2024. All rights reserved.