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

Gau*_*tam 4 django nginx static-files pinax

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

更确切地说,我正在尝试为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/;
    }
Run Code Online (Sandbox Code Playgroud)

例如,来自各个站点的所有不同配置指令确实让我很困惑

如何使用NGINX直接提供所有现有静态文件,但将其余部分代理到后端服务器.

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

环境信息:

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

Gau*_*tam 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到了一个线索

Nginx不提供静态服务