1. 结论说明

采用 nginx 将一个目录映射成 http 服务来访问,效果如下

Nginx打开目录浏览功能(autoindex)_文件时间


在 nginx.conf 中配置如下信息

location /logs {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
alias /home/nginx/logs/;
charset utf-8;
auth_basic "Restricted";
auth_basic_user_file /home/nginx/conf/htpasswd;
}

2. 配置说明

配置

说明

autoindex

默认为 off,不允许列出整个目录的。

on, 列出整个目录

alias

设置需要映射的文件的真实目录。 alias 设置的目录是准确的,可以理解为linux的 ln命令创建软连接,location就是软连接的名字。

root

设置需要映射的文件的家目录。root 设置的目录是根目录,locatoin里所指定名称的目录,必须在root设定下的目录有相同名字的目录。

autoindex_exact_size

默认为 on,显示出文件的确切大小,单位是bytes。《br>改为 off 后,显示出文件的大概大小,单位是kB或者MB或者GB

autoindex_localtime

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

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

3. 权限控制

有时我们web服务器上的某个文件夹只允许特定人员访问,这时我们需要在nginx配置文件中配置该文件夹的访问权限。

生成访问用户

  1. 采用 python 来生成密钥
    在nginx中我们使用htpasswd来生成用户名单
    下载这个python文件:http://trac.edgewall.org/export/10770/trunk/contrib/htpasswd.py (nginx wiki里推荐的)
    运行示例:
chmod 777 htpasswd.py
./htpasswd.py -c -b htpasswd username password

#-c为生成文件 htpasswd为文件名
  1. 将生成的文件放在 nginx对应的配置文件中
    我们把生成的htpasswd文件放到 ​​/home/nginx/conf/​​目录中,修改权限chmod 400 htpasswd来保护一下该文件。
  2. 修改对应的nginx 配置
  auth_basic "Restricted";#访问权限类型
auth_basic_user_file /home/nginx/conf/htpasswd;
  1. 重启nginx 即可,需要 http://ip/logs 目录需要登录用户密码
  2. Nginx打开目录浏览功能(autoindex)_文件时间_02