nginx+fancy实现漂亮的索引目录

nginx不仅仅作为web站点使用,也可以当做一个文件共享的使用,索引目录列表提供用户下载文件。Nginx自带的目录浏览功能很简单,但看起来并不是那么的美观,我们可以使用ngx-fancyindex插件来美化目录浏览功能。

具体操作步骤:

下载及解压缩Nginx,我采用的是Legacy versions 1.6.3
# wget http://nginx.org/download/nginx-1.6.3.tar.gz
# tar -xzvf nginx-1.6.3.tar.gz

下载解压缩ngx-fancyindex安装包,
# wget https://github.com/aperezdc/ngx-fancyindex/archive/master.zip

上传到nginx-1.6.3目录下,如下
nginx-1.6.3/ngx-fancyindex-master

移除系统自带的Apache服务器
# apt-get remove apache2 apache2-*

安装Nginx前必要的准备工作

# apt-get install libpcre3 libpcre3-dev gcc g++ openssl libssl-dev make

注:CentOS系统请执行下面的命令

# yum -y install gcc gcc-c++ autoconf automake make zlib zlib-devel openssl openssl–devel pcre pcre-devel

编译及安装ngx-fancyindex插件

# cd nginx-1.6.3
# ./configure --prefix=/usr/local/nginx-1.6.3 --add-module=./ngx-fancyindex-master
# make
# make install

查看一下获取Nginx-Facncy index配置是否成功

/usr/local/nginx-1.6.3/sbin/nginx -V

配置ngx-fancyindex插件

在.conf文件中添加如下:

location /{
fancyindex on;
fancyindex_exact_size off;
fancyindex_localtime on;
fancyindex_footer /footer.html;
fancyindex_header /header.html;
fancyindex_ignore footer.html header.html;
}

启动Nginx及重载Nginx的命令
/usr/local/nginx-1.6.3/sbin/nginx
/usr/local/nginx-1.6.3/sbin/nginx -s reload

补充说明一下,fancy官方说fancy插件可以运行于0.7以上版本,但本人水平有限编译不成功。

参数解释:
fancyindex on:开启fancy索引
fancyindex_exact_size off:不使用精确的大小,使用四舍五入,1.9M会显示为2M这样.如果开启的话,单位为字节
fancyindex_localtime on:使用本地时间
fancyindex_footer "myfooter.shtml":把当前路径下的myfooter.shtml内容作为底部.文件不存在底部会出现404.

如果需要自定义footer.html和header.html文件,你可以需要修改ngx-fancyindex-master/template.h并重新编译安装Nginx。

fancy指令使用:

fancyindex
语法: *fancyindex* [*on* | *off*]
默认值: fancyindex off
配置块: http, server, location
描述: 开启/关闭目录索引功能

fancyindex_css_href

语法: *fancyindex_css_href uri*
默认值: fancyindex_css_href ""
配置块: http, server, location
描述: 外置css路径,这个css将会替代掉现有的css样式。如果你会css,那你可以把索引列表做得更加漂亮.咱们ttlsa没有网页设计师,所以只能用自带的了^^

fancyindex_exact_size

语法: *fancyindex_exact_size* [*on* | *off*]
默认值: fancyindex_exact_size on
配置块: http, server, location
描述: 定义如何显示文件的大小,默认是on,on:文件大小使用精确值,单位为字节.off:单位为KB,MB,GB,如果含有小数点,将会四舍五入。例如1.9MB,将会显示为2MB。

fancyindex_footer

语法: *fancyindex_footer path*
默认值: fancyindex_footer ""
配置块: http, server, location
描述: 指定哪个文件嵌入到索引页面的底部,效果请看本文的第一张图片

fancyindex_header

语法: *fancyindex_header path*
默认值: fancyindex_header ""
配置块: http, server, location
描述: 指定哪个文件嵌入到索引页面的头部.用法和fancyindex_footer类似

fancyindex_ignore

语法: *fancyindex_ignore string1 [string2 [… stringN]]*
默认值: No default.
配置块: http, server, location
描述: 哪些文件/目录隐藏掉,如果你的nginx支持正则,那么可以使用正则表达式来过滤

例如我想隐藏dir打头的文件或目录以及文件filea.txt,配置如下:
fancyindex_ignore "dir*" "filea.txt"

fancyindex_localtime

语法: *fancyindex_localtime* [*on* | *off*]
默认值: fancyindex_localtime off
配置块: http, server, location
Description: 使用当地时间显示文件的创建时间,默认是off(GMT时间)

nginx+fancy实现漂亮的索引目录》有一个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注