nginx问题与静态文件服务

好的,所以我想给nginx一个尝试,同时通过FastCGI设置我的Django应用程序,我遇到了一个问题。 FastCGI运行正常,但静态文件给我404。这是我的configuration:

server { listen 80; server_name localhost; access_log /var/log/nginx/default.access.log; location /static/public { autoindex on; index index.html; root /home/daniels/djangoapp/public; } location / { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/home/daniels/djangoapp/djangoapp.sock; } # redirect server error pages to the static page /50x.html # #error_page 500 502 503 504 /50x.html; #location = /50x.html { # root /var/www/nginx-default; #} } 

任何我尝试访问为http://127.0.0.1/static/public/给404
例如: http : //127.0.0.1/static/public/css/sytle.css在/home/daniels/djangoapp/public/css/style.css中给出404

任何想法有什么不对?

LE:

 2010/02/20 22:31:42 [error] 3411#0: *3 open() "/home/daniels/djangoapp/public/img/static/public/img/background.jpg" failed (2: No such file or directory), client: 10.0.2.2, server: localhost, request: "GET /static/public/img/background.jpg HTTP/1.1", host: "127.0.0.1" 

所以它似乎将位置指令中的/static/public部分追加到根

LE2:
好吧,我真的很抱歉的错别字,但这是当我复制粘贴日志和编辑应用程序的名称。 什么似乎发生的是/static/public我的根设置为/home/daniels/djangoapp/public所以http://127.0.0.1/static/public/test.jpg我期待nginx查找文件在/home/daniels/djangoapp/public/test.jpg ,而是在/home/daniels/djangoapp/public/static/public/test.jpg
它似乎追加一个额外的/static/public的path。

刚刚修复使用这个:

 location /static/public/ { alias /home/daniels/neasoferul/public/; } 

我认为Nginx会以相反的顺序关联规则:尝试将/ static / public部分放在/ rule下面。

我有这个configuration,工作正常:

 # proxy to Apache 2 and mod_python location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://wsgi; } # catch any weird erroneous media locations - it's a sub domain location /media/ { root /var/www/sites/mysite/static; } 

假设你没有在URL中inputsytle.css,而是在style.css中input,那么启用错误日志: http ://wiki.nginx.org/NginxHttpMainModule#error_log,看看它试图访问哪个path。

你应该把你的静态内容放在自己的子域中。 稍后pipe理和扩展更容易。