您的位置:首页 > 运维架构 > Nginx

nginx启用浏览目录功能

2017-02-22 16:36 162 查看
Nginx默认是不允许列出整个目录的。如需此功能,打开nginx.conf文件或你要启用目录浏览虚拟主机的配置文件,在server或location 段里添加上autoindex on;来启用目录浏览,下面会分情况进行说明。

另外Nginx的目录浏览有两个比较有用的参数,可以根据自己的需求添加:

autoindex_exact_size off;

默认为on,显示出文件的确切大小,单位是bytes。

改为off后,显示出文件的大概大小,单位是kB或者MB或者GB

autoindex_localtime on;

默认为off,显示的文件时间为GMT时间。

改为on后,显示的文件时间为文件的服务器时间

1、整个虚拟主机开启目录浏览

在server段添加

location / {

autoindex on;

autoindex_localtime on; #之类的参数写这里

}

2、单独目录开启目录浏览

2.1:直接二级目录开启目录浏览

location /down/ {

autoindex on;

}

2.2:虚拟目录开启目录浏览

location /down/ {

alias /home/wwwroot/lnmp/test/;

autoindex on;

}

详细参照:http://nginx.org/en/docs/http/ngx_http_autoindex_module.html

示例配置如下

location / {   

        root /data/www/file                     //指定实际目录绝对路径;   

        autoindex on;                            //开启目录浏览功能;   

        autoindex_exact_size off;            //关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b;   

        autoindex_localtime on;              //开启以服务器本地时区显示文件修改日期!   

}  

需要注意root和alias的区别:

alias 设置的目录是准确的,可以理解为linux的 ln命令创建软连接,location就是软连接的名字。如上面2.2例子访问 http://域名/down/vpser.txt 是直接访问的/home/wwwroot/lnmp/test/下面的vpser.txt文件。

root 设置的目录是根目录,locatoin里所指定名称的目录,必须在root设定下的目录有相同名字的目录。如果将上面2.2例子里的alias改成root 访问 http://域名/down/vpser.txt 是直接访问的的/home/wwwroot/lnmp/test/down/ 目录下的vpser.txt文件。

需要注意的是alias目录必须要以 / 结尾且alias只能在location中使用。

如果想希望做出漂亮的目录列表,支持header,footer则可以安装三方插件:
http://wiki.nginx.org/NginxNgxFancyIndex
重启nginx,使其生效。

对中文目录的支持

 server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        charset utf-8;

#access_log  logs/host.access.log  main;

        access_log syslog:server=10.1.41.53:514,facility=local7,tag=nginx,severity=info;

        location / {

            #root html;

            root   /var/ftp/;

            autoindex on;                           # //开启目录浏览功能;   

            autoindex_exact_size off;               #//关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b>;   

            autoindex_localtime on;                 #//开启以服务器本地时区显示文件修改日期!   

            #index  index.php index.html index.htm;

         }

        }

        

        

nginx默认的配置为charset koi8-r,导致显示中文有点乱码,修改为utf-8后正常

对比下apache的配置

< Directory  ”/data/www/file” >   

        Options Indexes                                               //开启目录列表索引模式   

        Order allow,deny   

        IndexOptions  NameWidth = 25   Charset = UTF -8     //设定文件名显示长度,文字字符编码   

        Allow from all   

     </ Directory >
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: