django - Django/nginx/uwsgi出现502错误

标签 django ubuntu nginx uwsgi digital-ocean

我真的很紧张,因为我试图让这个网站在我的 ubuntu 服务器上运行。我只是一个试图自己托管东西的前端。我想我几乎把它弄下来了。但访问域时仍然收到 502 bad gateway 错误。

这是我的项目树:

-- var
    -- www
        -- stacaravanverhuurgroesbeek
            |-- env/
            |-- logs/
                |-- access.log
                |-- error.log
                `-- uwsgi.log
            |-- conf/
            |   |-- stacaravanverhuurgroesbeek.sock
            |   `-- uwsgi.ini
            `-- public/
                |-- manage.py
                |-- media/
                |-- project.db
                |-- requirements.txt
                |-- static/
                `-- website/
                    |-- dev/
                    |-- gulp/
                    |-- gulpfile.js
                    |-- package.json
                    |-- settings.py
                    |-- static/
                    |-- templates/
                    |-- urls.py
                    `-- wsgi.py

我的 uwsgi ini 文件:/var/www/stacaravanverhuurgroesbeek/conf/uwsgi.ini :
[uwsgi]
# variables
projectname = stacaravanverhuurgroesbeek
projectdomain = stacaravanverhuurgroesbeek.nl 
base = /var/www/stacaravanverhuurgroesbeek

# config
chdir = %(base)/public
home = %(base)/env
wsgi-file = %(base)/public/website/wsgi.py

master = True
processes = 5

socket = %(base)/conf/%(projectname).sock
vacuum = true
die-on-term = true

logto = %(base)/logs/uwsgi.log

我的 nginx 配置:/etc/nginx/sites-available/stacaravanverhuurgroesbeek :
server {
    listen 80;
    server_name stacaravanverhuurgroesbeek.nl www.stacaravanverhuurgroesbeek.nl;

    root /var/www/stacaravanverhuurgroesbeek/;
    access_log /var/www/stacaravanverhuurgroesbeek/logs/access.log;
    error_log /var/www/stacaravanverhuurgroesbeek/logs/error.log;

    location /static/ {
        root /var/www/stacaravanverhuurgroesbeek/public/static/;
    }

    location /media/ {
        root /var/www/stacaravanverhuurgroesbeek/public/media/;
    }

    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:///var/www/stacaravanverhuurgroesbeek/conf/stacaravanverhuurgroesbeek.sock;
    }
}

我还将这个文件符号链接(symbolic link)到 sites-enabled .

还有我的启动脚本:/etc/init/uwsgi.conf
# Emperor uWSGI script

description "uWSGI Emperor"
start on runlevel [2345]
stop on runlevel [!2345]

setuid bastard
setgid bastard

exec uwsgi --master --emperor /etc/uwsgi/vassals

此外,每次我更改某些内容时,我都重新启动了 nginx 和 uwsgi,但没有任何效果。

我真的希望有人能看到我的设置中的问题所在。

最佳答案

也许您应该在 Nginx 配置中设置上游,因为您要将所有请求代理到 uWSGI。例如。:

upstream uwsgi_app {
    server unix:///path/to/your/mysite/mysite.sock; # взаимодействие  
}

server {
    ...
    location / {
        uwsgi_pass uwsgi_app;
        include uwsgi_params;
    }
    ...
}

如果它不起作用,请同时提供 uWSGI 日志以确保 reqquest 实际到达 uWSGI 并且没有发生错误。

关于django - Django/nginx/uwsgi出现502错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33710186/

相关文章:

python - 如何在 Django 之外使用 Django 模型?

django - 连接到 Sock 文件失败。资源暂时不可用

linux - Golang - 不使用 cgo 时不允许使用 C 源文件

node.js - 在运行 Nginx 反向代理的 ubuntu 18.04 AWS 服务器上使用 Nodejs 应用程序的 HTTP 404

Nginx 将 www 和非 www 请求转发到一个目录?

ssl - 为什么 prestashop 不能与 ssh 一起正常工作?

python - 导入时 Boto3 弃用警告

python - 用于非 Django 项目的类 Django 抽象数据库 API

linux - 在 Bash 中使用 awk 命令

python - CentOS 在随机时间运行 python 脚本