Gunicorn和Nginx之间的沟通

gun*_*sai 6 django nginx gunicorn

我一直在尝试使用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;
    }            
}
Run Code Online (Sandbox Code Playgroud)

下面是我的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
Run Code Online (Sandbox Code Playgroud)

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

[Unit]
Description=gunicorn socket

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

[Install]
WantedBy=sockets.target
Run Code Online (Sandbox Code Playgroud)

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

connect() to unix:/home/user/myproject/myproject.sock failed (111: Connection refused) while connecting to upstream
Run Code Online (Sandbox Code Playgroud)

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

小智 -2

假设您运行的是 Ubuntu 14.04:

Step1:首先你可以在virtualenv中安装并运行django和gunicorn。这里,与nginx无关,但你可以同时获得Django和gunicorn的反馈。

Step2: 然后是时候用 nginx 来实现一个健壮的方式了。

确保第 1 步亮起绿灯,然后跳到第 2 步,这样您就可以隔离不同阶段的任何问题。