nginx启用浏览目录功能

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   
     


你可能感兴趣的:(Nginx)