评论

收藏

[Nginx] Nginx列出目录和文件并用密码控制访问权限配置方法

web服务器 web服务器 发布于:2021-08-22 21:25 | 阅读数:331 | 评论:0

这篇文章介绍怎样用web服务器列出指定的目录和文件,并对指定目录进行授权访问。
使用Nginx列出目录
准备工作 - 安装nginx和创建一些目录和文件:
复制代码代码如下:
$ sudo apt-get install nginx
$ cd /usr/share/nginx
$ mkdir web
$ sudo mkdir directory{1,2,3}
$ sudo touch file{1,2,3}
$ ls
directory1  directory2  directory3  file1  file2  file3
Nginx配置:
复制代码代码如下:
$ sudo vim /etc/nginx/conf.d/list.conf 
server {
  listen     80;
  server_name  192.168.1.201;
  root /usr/share/nginx/web;
  index index.html;
  autoindex on;
  autoindex_exact_size off;
  autoindex_localtime on;
}
$ sudo service nginx restart/reload
当访问http://192.168.1.201,屏幕显示:
DSC0000.png

现在就可以用web服务器来共享文件;但前提是根目录下必须没有index.html文件。
授权访问指定的目录
有些目录不想让所有人看到,只有指定的用户输入密码后才能访问,例如directory只能由test1访问:
step1安装htpasswd
复制代码代码如下:
$ sudo apt-get install apache2-utils
step2创建密码文件
复制代码代码如下:
$ sudo htpasswd -c /home/test/.htpasswd test1
New password: 
Re-type new password: 
Adding password for user test1
step3修改Nginx配置文件
复制代码代码如下:
$ sudo vim /etc/nginx/conf.d/list.conf
 
server {
  listen     80;
  server_name  192.168.1.201;
  root /usr/share/nginx/web;
  index index.html;
  autoindex on;
  autoindex_exact_size off;
  autoindex_localtime on;
  location ^~/directory1/ {
    auth_basic      "input you user name and password";
    auth_basic_user_file  /home/test/.htpasswd;
  }
}
重启Nginx服务后,访问directory1目录时会提示输入登入信息:
DSC0001.png


关注下面的标签,发现更多相似文章