Nginx 目录或 网站加密认证

如果要对 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 出现下面错误的话

-bash: htpasswd: command notfound

就需要安装 httpd,或者用 perl方式了

安装 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了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值