服务器 
首页 > 服务器 > 浏览文章

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

(编辑:jimmy 日期: 2024/12/28 浏览:3 次 )

这篇文章介绍怎样用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,屏幕显示:

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

现在就可以用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目录时会提示输入登入信息:

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

上一篇:在Apache服务器中运行CGI程序的方法
下一篇:apache ab工具页面压力测试返回结果含义解释
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。