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

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

(0)

相关推荐

  • Nginx服务器中设置禁止访问文件或目录的方法

    在nginx要禁止某个或一类资源,只需要增加一个location,然后在其中使用deny all即可. 禁止访问扩展名为bat的文件,配置如下: location ~* /.bat { deny all; } 禁止访问configs目录,以及其下所有子目录或文件,配置如下: location ^~ /configs/ { deny all; } 注意上述configs后面的斜杠不能少,否则所有以configs开头的目录或文件都将禁止访问.

  • nginx将泛解析的匹配域名绑定到子目录配置方法

    网站的目录结构为: # tree /home/wwwroot/exehack.net /home/wwwroot/exehack.net ├── bbs │   └── index.html └── www     └── index.html 2 directories, 2 files /home/wwwroot/exehack.net为nginx的安装目录下默认的存放源代码的路径. bbs为论坛程序源代码路径:www为主页程序源代码路径:把相应程序放入上面的路径通过:http://www.

  • Nginx、Apache、Lighttpd禁止目录执行php配置示例

    为了加强网站安全性,我们除了限制目录权限外,还需要禁用某此目录禁止执行php.在IIS中可以直接将目录的脚本执行权限去掉,而针对非windows系统如何做呢? 接下来的文章将简单的介绍不同的webserver如何禁用php执行.... Apache: 复制代码 代码如下: <Directory /website/attachments>     php_flag engine off </Directory> Nginx: 禁用单个目录: 复制代码 代码如下: location /

  • nginx禁止dedecms目录php执行权限

    复制代码 代码如下: location ~* ^/(data|uploads|templets|special|html|erwe)/.*\.(php|php5)${deny all;}

  • Nginx中的root&alias文件路径及索引目录配置详解

    root&alias文件路径配置 nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应.root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射到服务器文件上. [root] 语法:root path 默认值:root html 配置段:http.server.location.if [alias] 语法:alias path 配置段:location 实例: loca

  • Nginx服务器中为网站或目录添加认证密码的配置详解

    nginx可以为网站或目录甚至特定的文件设置密码认证.密码必须是crypt加密的.可以用apache的htpasswd来创建密码. 格式为: htpasswd -b -c site_pass username password site_pass为密码文件.放在同nginx配置文件同一目录下,当然你也可以放在其它目录下,那在nginx的配置文件中就要写明绝对地址或相对当前目录的地址. 如果你输入htpasswd命令提示没有找到命令时,你需要安装httpd.如果是centos可以执行如下来安装,

  • Nginx 禁止访问某个目录或文件的设置方法

    复制代码 代码如下: location = /config/ { return 404; } location =/config.ini{ return 404; } 这样只能禁止访问 http://www.jb51.net/path/ 复制代码 代码如下: location = /path/ { return 404; } 禁止访问 http://www.jb51.net/path/test.php 复制代码 代码如下: location ^~ /test { deny all; } 可能te

  • Nginx对某个目录设置密码保护例子

    有时不想某个目录被访问,所以要加密码之类来保护,以前用过的 Apache 好像很简单就实现目录加密.我用的是 Nginx,用了那么久 Nginx 还真没试过加密--参考了一些资料,然后发现这样就可以:(Debian系统,配置中"#......."表示后续还有其他配置)1. 配置网站(假如 yousite.com 放在 /home/www,然后要对 ooxx 目录加密) 复制代码 代码如下: server { listen 80; server_name yousite.com; roo

  • 在Nginx浏览器中打开目录浏览功能

    在nginx中不像apache默认是打开目录浏览功能的,在nignx中目录浏览功能默认是关闭了,下面我来介绍在nginx中实现目录浏览功能的配置方法. 打开nginx.conf文件,在location server 或 http段中加入 autoindex on; 另外两个参数最好也加上去: autoindex_exact_size off; 默认为on,显示出文件的确切大小,单位是bytes. 改为off后,显示出文件的大概大小,单位是kB或者MB或者GB autoindex_localtim

  • Nginx服务器下配置使用索引目录的教程

    为了简单共享文件,有些人使用svn,有些人使用ftp,但是更多得人使用索引(index)功能.apache得索引功能强大,并且也是最常见得,nginx的auto_index实现得目录索引偏少,而且功能非常简单.先来看看我们得效果图. nginx配置 location ~ ^/2589(/.*) { autoindex on; //开启 autoindex_localtime on;//开启显示功能 } auto_index指令 语法: autoindex on | off; 配置段: autoi

随机推荐