Nginx Diretory Index - downgoon/hello-world GitHub Wiki

Nginx Diretory Index

需求背景

把一个文件目录,用nginx提供web浏览。最简单的方法是用nginx内置的autoindex,如下配置:


server {
        listen       80;
        server_name  localhost;

        access_log  logs/host.access.log  main;

        location /yunpan {
            alias /var/data/yunpan;
           autoindex on;
           autoindex_exact_size  off;
           autoindex_localtime on;
       }
       

}

以上配置,就是把目录/var/data/yunpan,以http://localhost:80/yunpan 的形式浏览目录。开关autoindex_localtime on表示文件的时间,显示服务器本地时间(时区)。

但是autoindex太丑了!开源的有个 fancyindex的nginx module支持引用拓展的样式,比如Nginx-Fancyindex-Theme-master.zip

软件版本

操作系统: CentOS 6.4


源代码安装

  • 安装依赖
yum -y install pcre-devel openssl openssl-devel
  • 编译安装fancyindex模块
$ cd nginx-1.0.15
$ ./configure --prefix=/usr/local/nginx --add-module=../ngx-fancyindex-0.4.1
$ make && make install

fancyindex 配置

假设我们需要展现的目录是/var/data/yunpan,样式文件存放在/var/data/fancyindex目录下。

  • 首先把样式拷贝到fancyindex目录:
$ cp -R Nginx-Fancyindex-Theme-master/*  /var/data/fancyindex/
  • 接着添加fancyindex配置

server {
        listen       80;
        server_name  localhost;

       location /yunpan {
            alias /var/data/yunpan;
            fancyindex on;
            fancyindex_localtime on; #on for local time zone. off for GMT
            fancyindex_exact_size off; #off for human-readable. on for exact size in bytes
            fancyindex_header "/fancyindex/header.html";
            fancyindex_footer "/fancyindex/footer.html";
            fancyindex_ignore "fancyindex"; #ignore this directory when showing list
       }

      location /fancyindex {
         alias /var/data/fancyindex;  # fancyindex css files
      }

}

访问效果