django与gunicron和nginx

django与gunicron和nginx,django,deployment,nginx,gunicorn,supervisord,Django,Deployment,Nginx,Gunicorn,Supervisord,我已经开发了django应用程序,现在使用gunicron和nginx在freebsd服务器上部署它。我在installedapps下的项目设置文件中添加了guncorn。并将gunicorn.conf.py放在根目录中,如下所示: import os def numCPUs(): if not hasattr(os, "sysconf"): raise RuntimeError("No sysconf detected.") return os.sysconf

我已经开发了django应用程序,现在使用gunicron和nginx在freebsd服务器上部署它。我在installedapps下的项目设置文件中添加了guncorn。并将gunicorn.conf.py放在根目录中,如下所示:

import os

def numCPUs():
    if not hasattr(os, "sysconf"):
        raise RuntimeError("No sysconf detected.")
    return os.sysconf("SC_NPROCESSORS_ONLN")

user = root
workers = numCPUs() * 2 + 1
bind = "127.0.0.1:8000"
pidfile = "/tmp/gunicorn-srv.pid"
backlog = 2048
logfile = "/data/logs/gunicorn_srv.log"
loglevel = "info"
然后在nginx.conf中,使用以下内容更新服务器标记:

    listen       80;
    server_name localhost;

    access_log   /var/log/nginx/nginx-access.log;
    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        proxy_pass   http://127.0.0.1:8000;
        #root   /usr/local/www/nginx;
        #index  index.html index.htm;
    }

    location  /media/ {
        root /data/webs/uni_rate;
    }
    location  /static/ {
        root /data/webs/uni_rate;
    }
现在我已经开始使用nginx和guncorn。如果我浏览我的公共ip页面,则会显示,但不会提供静态文件。如果我直接打

http://myip/static/folder/file.css
然后返回403错误。任何关于原因的想法,或者应该提供什么其他信息来诊断它

我的媒体和静态目录分别是:

/data/webs/uni_rate/media
/data/webs/uni_rate/static
以下是nginx-access.log的输出

182.178.6.248 - - [01/Apr/2013:11:14:54 -0500] "GET /static/bootstrap_toolkit_extras/css/bootstrap.css HTTP/1.1" 403 168 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv
:16.0) Gecko/20100101 Firefox/16.0"
182.178.6.248 - - [01/Apr/2013:11:15:00 -0500] "-" 400 0 "-" "-"

是否已检查/data/webs/uni_rate/的所有父文件夹的读取权限?Nginx用户必须具有对所有这些文件的读取权限。例如,/data、/data/webs、/data/webs/uni_rate。

尝试用以下内容替换静态和媒体的位置:

location /static {
    alias /var/www/domain1/media/;
    autoindex on;
    access_log off;
} 

诀窍在于“别名”而不是“根”。

您有
/media
/static
指向同一目录
/data/webs/uni\u rate
。首先,这实际上是媒体或静态的路径,其次,如果是,为什么它们是同一个目录?它到底做什么?自动索引安全吗?向上投票,但@Chuan Ma:answer解决了我的问题,因此被接受。自动索引不是必需的,我现在正在使用它进行开发过程,但无论如何,只列出静态目录,所以我认为它不安全。