我已经开发了 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 "-" "-"