nginx不仅仅作为web站点使用,也可以当做一个文件共享的使用,索引目录列表提供用户下载文件,apache的index功能很强大也很漂亮.咱们使用的nginx,说下nginx索引目录(nginx内置索引目录点我),他自带的功能很简单,而且不好看,如何做一个漂亮的索引列表.接下来看.

测试环境

操作系统:Centos7

web环境版本:Tengine-2.1.2

到这个官网地址下载https://github.com/aperezdc/ngx-fancyindex ,选择下载到本地然后上传到你的服务器上

image.png

# yum install unzip -y

# yum install gcc pcre-devel openssl-devel -y

# mkdir -p /xmisp/server

# mkdir -p /xmisp/logs

# wget https://tengine.taobao.org/download/tengine-2.1.2.tar.gz

# tar -zxvf tengine-2.1.2.tar.gz 

# cd tengine-2.1.2

# ./configure --prefix=/xmisp/server/tengine  --add-module=/root/ngx-fancyindex-master/

# make

# make install

# cd /xmisp/server/tengine/conf/

# >nginx.conf

# useradd -s /sbin/nologin www  -M 

# mkdir -p  /home/wwwroot 

# vi nginx.conf

NGINX主配置文件

user www www;
worker_processes 2;
error_log /xmisp/server/tengine/logs/nginx_error.log crit;
pid /xmisp/server/tengine/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
    use epoll;
    worker_connections 6000;
}
http
{
    include mime.types;
    default_type application/octet-stream;
    server_names_hash_bucket_size 3526;
    server_names_hash_max_size 4096;
    log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
    ' $host "$request_uri" $status'
    ' "$http_referer" "$http_user_agent"';
    sendfile on;
    tcp_nopush on;
    keepalive_timeout 30;
    client_header_timeout 3m;
    client_body_timeout 3m;
    send_timeout 3m;
    connection_pool_size 256;
    client_header_buffer_size 1k;
    large_client_header_buffers 8 4k;
    request_pool_size 4k;
    output_buffers 4 32k;
    postpone_output 1460;
    client_max_body_size 10m;
    client_body_buffer_size 256k;
    client_body_temp_path /xmisp/server/tengine/client_body_temp;
    proxy_temp_path /xmisp/server/tengine/proxy_temp;
    fastcgi_temp_path /xmisp/server/tengine/fastcgi_temp;
    fastcgi_intercept_errors on;
    tcp_nodelay on;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 8k;
    gzip_comp_level 5;
    gzip_http_version 1.1;
    gzip_types text/plain application/x-javascript text/css text/htm
    application/xml;
    server
    {
      listen 80;
      server_name localhost;
      root /home/wwwroot;
      error_log /xmisp/logs/tengine_error.log crit;
      access_log /xmisp/logs/tengine.log  combined_realip;
      location  /
      {
      fancyindex on;
      fancyindex_exact_size off;
      charset utf-8,gbk;
      }
    }
}

#vi /etc/init.d/tengine

设置Tengine启动脚本

#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/xmisp/server/tengine/sbin/nginx"
NGINX_CONF="/xmisp/server/tengine/conf/nginx.conf"
NGINX_PID="/xmisp/server/tengine/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start() 
{
    echo -n $"Starting $prog: "
    mkdir -p /dev/shm/nginx_temp
    daemon $NGINX_SBIN -c $NGINX_CONF
    RETVAL=$?
    echo
    return $RETVAL
}
stop() 
{
    echo -n $"Stopping $prog: "
    killproc -p $NGINX_PID $NGINX_SBIN -TERM
    rm -rf /dev/shm/nginx_temp
    RETVAL=$?
    echo
    return $RETVAL
}
reload()
{
    echo -n $"Reloading $prog: "
    killproc -p $NGINX_PID $NGINX_SBIN -HUP
    RETVAL=$?
    echo
    return $RETVAL
}
restart()
{
    stop
    start
}
configtest()
{
    $NGINX_SBIN -c $NGINX_CONF -t
    return 0
}
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  reload)
        reload
        ;;
  restart)
        restart
        ;;
  configtest)
        configtest
        ;;
  *)
        echo $"Usage: $0 {start|stop|reload|restart|configtest}"
        RETVAL=1
esac
exit $RETVAL

# chmod 755 /etc/init.d/tengine

# chkconfig --add tengine

# chkconfig tengine on

# /etc/init.d/tengine start

效果图如下

image.png

没有美化后的图片image.png

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样式


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正则


fancyindex_localtime

语法: *fancyindex_localtime* [*on* | *off*]

默认值: fancyindex_localtime off

配置块: http, server, location

Description: 使用当地时间显示文件的创建时间,默认是off(GMT时间)