nginx django uwsgi 502坏网关

nginx django uwsgi 502坏网关,django,nginx,uwsgi,Django,Nginx,Uwsgi,我正在尝试使用nginx和uwsgi在ubuntu14.04服务器64位上部署我的django web应用程序。我遵循了教程,但我得到了一个502坏网关错误 我采取了以下步骤: 已安装的依赖项和虚拟环境 使用uwsgi命令尝试了django webapp: uwsgi--http:8001--home/home/pnb/pnb--chdir/home/pnb/pnb/pnb-w pnb.wsgi 在目录/etc/uwsgi/sites中创建pnb.ini文件: [uwsgi] project =

我正在尝试使用nginx和uwsgi在ubuntu14.04服务器64位上部署我的django web应用程序。我遵循了教程,但我得到了一个502坏网关错误

我采取了以下步骤:

  • 已安装的依赖项和虚拟环境
  • 使用uwsgi命令尝试了django webapp:
  • uwsgi--http:8001--home/home/pnb/pnb--chdir/home/pnb/pnb/pnb-w pnb.wsgi

  • 在目录
    /etc/uwsgi/sites
    中创建pnb.ini文件:
  • [uwsgi]

    project = pnb    # Virtual environment name in home directory
    base = /home/pnb    # Home directory path
    chdir = /home/pnb/pnb     # Virtual Env Directory
    home = /home/pnb/pnb/pnb       #Django Project Directory with manage.py
    module = pnb.wsgi:application     # project name
    
    master = true
    processes = 5
    
    socket = /home/pnb/pnb/pnb/pnb.sock
    chmod-socket = 664
    vacuum = true
    
  • 创建了一个upstart脚本
    /etc/init/uwsgi.conf
  • 说明“uWSGI应用服务器处于帝王模式”

  • 已创建并保存nginx配置文件
    /etc/nginx/sites/available/pnb

    上游django{ 服务器unix:/home/pnb/pnb/pnb/pnb/pnb.sock; }

    服务器{ 听80; 服务器名称pnb.com;#IP地址或FQDN

    location /static/ {
        root /home/pnb/pnb/pnb;
    }
    
    location / {
        include         uwsgi_params;
        uwsgi_pass      unix:/home/pnb/pnb/pnb/pnb.sock;
    }
    
    }

  • 使用此配置,当我转到pnb.com时,我收到一个
    502坏网关
    错误

    有nginx错误日志:

    2016/06/12 06:30:10 [crit] 12517#0: *4 connect() to unix:/home/pnb/pnb/pnb/pnb.sock failed (2: No such file or directory) while connecting to upstream, client: 106.218.89.140, server: pnb.com, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/home/pnb/pnb/pnb/pnb.sock:", host: "pnb.com"
    
    如何更正此错误

    编辑:

    现在我已经检查了pnb.sock文件并没有在目录中创建。它是否必须与文件权限有关


    同样的配置也适用于我的另一个项目。

    在ubuntu上,惯例是在目录
    /var/run/
    中创建套接字。你可以把它放在任何地方,但是你必须注意权限是正确的。连接到套接字的两个进程都必须具有对套接字文件的读写访问权限和对目录(以及所有父进程)的
    rx
    权限。我假设uWSGI将在启动应用程序时创建套接字。@HåkenLid这是我使用上述教程进行的第二次部署。它第一次工作时没有任何错误。这一次只是它把这个错误抛给了我。我尝试在pnb.conf中将权限更改为666,但仍然不工作,并且在启动uWSGI时没有收到错误消息
    sudo服务uwsgi start
    @HåkenLid No.uwsgi和nginx在启动时不会抛出任何错误。我还尝试将socket目录更改为/var/run。在ubuntu上仍然不工作,惯例是在目录
    /var/run/
    中创建套接字。你可以把它放在任何地方,但是你必须注意权限是正确的。连接到套接字的两个进程都必须具有对套接字文件的读写访问权限和对目录(以及所有父进程)的
    rx
    权限。我假设uWSGI将在启动应用程序时创建套接字。@HåkenLid这是我使用上述教程进行的第二次部署。它第一次工作时没有任何错误。这一次只是它把这个错误抛给了我。我尝试在pnb.conf中将权限更改为666,但仍然不工作,并且在启动uWSGI时没有收到错误消息
    sudo服务uwsgi start
    @HåkenLid No.uwsgi和nginx在启动时不会抛出任何错误。我还尝试将socket目录更改为/var/run。仍然不起作用
    2016/06/12 06:30:10 [crit] 12517#0: *4 connect() to unix:/home/pnb/pnb/pnb/pnb.sock failed (2: No such file or directory) while connecting to upstream, client: 106.218.89.140, server: pnb.com, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/home/pnb/pnb/pnb/pnb.sock:", host: "pnb.com"