Nginx,SImple配置,用于提供目录中的所有文件以及其中的所有目录

时间:2011-10-09 15:19:25

标签: django nginx pinax static-files

我正在寻找一个简单的配置来提供特定文件夹中的所有文件和目录。

更准确地说,我正在尝试为pinax /static_media/文件夹和/media/文件夹中的所有内容提供相同的URL,并且最好自动索引所有内容。

顺便说一下,我运行python manage.py build_media --all所以所有静态内容都在<project_name>/site_media/static

之下

我正在使用的当前配置:

server {
    listen   80;
    server_name  QuadraPaper;

    access_log  /home/gdev/Projects/QuardaPaper/access_log.log;

    location ^*/site_media/*$
    {
        autoindex on;
        access_log off;
        root /home/gdev/Projects/QuardaPaper/site_media;
    }

    location /media/ {
        autoindex on;
        root   /home/gdev/Projects/QuardaPaper/media/;
    }

来自不同网站的所有不同配置说明确实让我感到困惑,例如

How to serve all existing static files directly with NGINX, but proxy the rest to a backend server.

http://coffeecode.net/archives/200-Using-nginx-to-serve-static-content-with-Evergreen.html

https://serverfault.com/q/46315/91723

http://wiki.nginx.org/Pitfalls

http://pinaxproject.com/docs/0.7/media/#ref-media-devel

环境信息:

  • 在VirtualBox上运行的Xubuntu 10.04
  • nginx 1.1.4
  • pinax 0.72
  • django 1.0.4
  • fastcgi通过nginx运行django

1 个答案:

答案 0 :(得分:7)

我找到了答案,我猜到这很简单。 必须设置一次根目录并使用子目录作为位置

server {
    listen   80;
    server_name  QuadraPaper;

    access_log  /home/gdev/Projects/QuardaPaper/access_log.log;
    root /home/gdev/Projects/QuardaPaper;

    location /site_media/ {
        autoindex on;
        access_log off;
    }

    location /media/ {
        autoindex on;
    }
}

我从

获得了线索

Nginx doesn't serve static