连接到上游的Nginx,django,gunicorn,ubuntu 14.04(13:允许被拒绝)

时间:2016-04-21 15:01:31

标签: python django unix ubuntu nginx

我正在我的django项目nginxgunicorn工作,正如它在此处所说:

https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-14-04

我的网站在本地运作,但当我启动nginxgunicorn服务器时,我有

  

502 Bad Gateway错误。

操作系统为UBUNTU 14.04

我正在尝试让我的项目工作,并以root身份重新安装所有内容(我知道它很糟糕) - 同样的错误。

这是我的“error.log”:

  

2016/04/20 20:15:10 [暴击] 10119#0:* 1连接()到
  unix:/root/myproject/myproject.sock失败(13:权限被拒绝)   连接到上游时,客户端:46.164.23

当我执行命令“nginx”时:

  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
  nginx: [emerg] still could not bind()

我的gunicorn.conf

description "Gunicorn application server handling myproject" start on runlevel [2345] stop on runlevel [!2345] respawn setuid root setgid www-data chdir /root/myproject exec myprojectenv/bin/gunicorn --workers 3 --bind unix:/root/myproject/myproject.sock myproject.wsgi:application

多数民众赞成我的“/ etc / nginx / sites-available / myproject”

server {
listen 80;
server_name         www.mysite.ru;

error_log /nginx_error.log;

location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
    root /root/myproject;
}

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

}

非常感谢你的帮助!!!

2 个答案:

答案 0 :(得分:1)

proxy_pass http://unix:/root/myproject/myproject.sock;

套接字位于超级用户的主文件夹中。对于包括您的nginx用户在内的所有其他用户来说,这几乎是无法访问的。请将插座更多地连接到其他位置。 / var / log / gunicorn /是一个好地方。

我也看到你以root身份运行gunicorn吗?不建议。

setuid root

请在此处使用其他用户。

答案 1 :(得分:0)

根据您的nginx错误日志,我认为您还有其他使用端口80的进程。

你必须弄清楚那个过程是什么,如果不需要就杀掉它。或者使用另一个端口。