太阳不下山 发表于 2021-8-22 21:25:00

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

这篇文章介绍怎样用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

directory1directory2directory3file1file2file3
Nginx配置:
复制代码代码如下:



$ sudo vim /etc/nginx/conf.d/list.conf

server {

    listen       80;

    server_name192.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,屏幕显示:

现在就可以用web服务器来共享文件;但前提是根目录下必须没有index.html文件。
授权访问指定的目录
有些目录不想让所有人看到,只有指定的用户输入密码后才能访问,例如directory只能由test1访问:
step1安装htpasswd
复制代码代码如下:


$ sudo apt-get install apache2-utilsstep2创建密码文件
复制代码代码如下:


$ sudo htpasswd -c /home/test/.htpasswd test1

New password:

Re-type new password:

Adding password for user test1step3修改Nginx配置文件
复制代码代码如下:



$ sudo vim /etc/nginx/conf.d/list.conf



server {

    listen       80;

    server_name192.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目录时会提示输入登入信息:


文档来源:http://www.zzvips.com/article/24241.html
页: [1]
查看完整版本: Nginx列出目录和文件并用密码控制访问权限配置方法