如果要对 images文件夹 进行加密认证
首先应该建立一个密码文件,目录和 文件名后缀名 自己定,我们这里就用 web.pass,这个文件的格式如下:
用户名:密码
多这个账户需要用换行隔开(一个帐号一行)
并且密码必须使用函数 crypt(3) 加密,用户名不需要加密
可以用 Apache 的 htpasswd 工具来创建密码文件
/usr/bin/htpasswd -c /usr/local/nginx/conf/pw.pass admin
New password: (输入密码)
Re-type new password: (再次输入密码)
Adding password for user ngin
或者:
/usr/bin/htpasswd -nb user passwd
如果执行 htpasswd -c /usr/local/nginx/conf/pw.pass admin 出现下面错误的话
安装 httpd 方法如下:
yum install httpd
安装完成后,在执行密码生成命令就可以。
生成用户密钥文件为pw.pass用户名为admin密码为(自己输入的密码)
也可以使用perl 创建密码文件 新建 一个 pw.pl 文件 其内容:
#!/usr/bin/perl
use strict;
my $pw=$ARGV[0] ;
print crypt($pw,$pw)."\n";
然后执行 chmod +x pw.pl
./pw.pl password
papAq5PwY/QQM
papAq5PwY/QQM 就是password 的crypt()密码
然后 将上面用 perl 生成的 加密后的密码
按照 用户名:密码 的格式写到 pw.pass 文件中(写的时候用户名可以随意填写,只要自己记住就可以了。密码是 上面执行输出的:papAq5PwY/QQM)
密码必须使用函数 crypt(3) 加密
密码文件生成好后,在 nginx.conf 文件中对应的 server 段中 添加如下内容
auth_basic "input username and password!";
auth_basic_user_file /usr/local/nginx/conf/pw.pass;
限制某一个目录的话需要如下配置:
location ^~ /images/ {
auth_basic "TEST-Login!";
auth_basic_user_file /opt/nginxpwd;
}
如果 不用 ^~ /images/ 而用 /images 的话 那么将只能对目录进行验证直接访问其下的文件,将不会弹出登录验证
配置好之后 重启nginx 就 ok了