(错误的网关)错误 502 Nginx、Gunicorn、Django DRF,Vue.js

(Bad Gateway) ERROR 502 Nginx, Gunicorn, Django DRF, Vue.js

我已经在 VPS 上部署了使用 Django 和 Vue.js 制作的电子商务。一切正常,但是当我尝试使用 POST 方法时,错误 502 出现在控制台中并且没有任何反应。 API 能够显示来自 Django Admin 的产品,但我不能 post 来自前端的任何东西。它总是给我这个错误 502 问题。几天来我一直在尝试解决这个问题,但仍然没有弄清楚哪里出了问题。希望你能帮忙。谢谢!

upstream perulab_app_server {
    server unix:/webapps/perulab/venv/run/gunicorn.sock fail_timeout=0;
}

server {
    listen 8000;
    listen [::]:8000;
    server_name 172.16.7.52;

    client_max_body_size 40M;

    location / {
        root /webapps/perulab/web-frontend/dist;
        try_files $uri /index.html;
        index index.html index.htm;
    }

    location /static/ {
        root /webapps/perulab/web-backend;
    }

    location /media/ {
        root /webapps/perulab/web-backend;
    }
        
    location /api/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://perulab_app_server/api/;
        proxy_ssl_session_reuse off;
        proxy_set_header Host $http_host;
        proxy_redirect off;
    }

    location /admin/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass http://perulab_app_server/admin/;
        proxy_ssl_session_reuse off;
        proxy_set_header Host $http_host;
        proxy_redirect off;
    }
}

当我尝试 运行 gunicorn --bind 172.16.7.52:8000 core.wsgi 出现的是:

[2021-09-27 14:55:59 -0500] [230558] [INFO] Starting gunicorn 20.1.0
[2021-09-27 14:55:59 -0500] [230558] [ERROR] Connection in use: ('172.16.7.52', 8000)
[2021-09-27 14:55:59 -0500] [230558] [ERROR] Retrying in 1 second.
[2021-09-27 14:56:00 -0500] [230558] [ERROR] Connection in use: ('172.16.7.52', 8000)
[2021-09-27 14:56:00 -0500] [230558] [ERROR] Retrying in 1 second.
[2021-09-27 14:56:01 -0500] [230558] [ERROR] Connection in use: ('172.16.7.52', 8000)
[2021-09-27 14:56:01 -0500] [230558] [ERROR] Retrying in 1 second.
[2021-09-27 14:56:02 -0500] [230558] [ERROR] Connection in use: ('172.16.7.52', 8000)
[2021-09-27 14:56:02 -0500] [230558] [ERROR] Retrying in 1 second.
[2021-09-27 14:56:03 -0500] [230558] [ERROR] Connection in use: ('172.16.7.52', 8000)
[2021-09-27 14:56:03 -0500] [230558] [ERROR] Retrying in 1 second.
[2021-09-27 14:56:04 -0500] [230558] [ERROR] Can't connect to ('172.16.7.52', 8000)

似乎有什么东西占用了 space,所以为了使这个命令起作用,我首先需要终止所有进程,然后 运行 这个命令。之后整个网络应用程序都崩溃了。

我试图 运行 同一端口上的所有内容。也许这就是问题所在,我不知道如何为此正确设置 Nginx。

更新: 测试完所有内容后,看起来 API 仅适用于不发送电子邮件的视图 类。任何具有 send_mail() 的视图都会生成此错误 502 问题。还是不知道怎么解决。

我能够解决这个问题。在这种情况下,上面的设置很好。除了发送电子邮件的 API 之外,所有 API 都在工作。所以,问题出在邮件服务器上,我无法从 DNS 发送电子邮件。一旦解决了这个问题,一切就开始正常工作了。