django – Gunicorn和Nginx之间的沟通

我一直在尝试使用Gunicorn作为我的应用程序服务器和Nginx作为反向代理来运行我的django生产服务器.

下面是我的nginx conf文件:

server {
    listen 80;
    server_name myproject.com;

    location /static/ {
        alias /var/www/myproject/static/;
    }

    location /media/ {
        alias /var/www/myproject/media/;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/user/myproject/myproject.sock;
    }            
}

下面是我的gunicorn.conf文件:

description "Gunicorn application server handling my project file"

start on runlevel [2345]
stop on runlevel [!2345]

respawn
setuid user
setgid www-data
chdir /home/user/myproject/

exec gunicorn --workers 3 --bind unix:/home/user/myproject/myproject.sock myproject.wsgi:application

下面是myproject.sock文件的代码:

[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn/socket
ListenStream=0.0.0.0:9000
ListenStream=[::]:8000

[Install]
WantedBy=sockets.target

当我尝试使用这些设置运行时.我收到以下错误:

connect() to unix:/home/user/myproject/myproject.sock failed (111: Connection refused) while connecting to upstream

如果有人能帮助我理解我做错了什么就会很棒.谢谢

最佳答案
假设您运行的是Ubuntu 14.04:

步骤1:
首先你可以在virtualenv中使用gunicorn安装和运行django.这里与nginx无关,但你可以从Django和gunicorn中得到反馈.

第2步:
然后是时候用nginx做一个健壮的方式.

确保步骤1亮绿灯然后跳到步骤2,这样您就可以隔离不同阶段的任何故障.

转载注明原文:django – Gunicorn和Nginx之间的沟通 - 代码日志