全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: tumour

[经验] 如何设置 nginx 目录密码保护

[复制链接]
 楼主| 发表于 2009-9-9 14:59:26 | 显示全部楼层
不错,期待中……
发表于 2009-9-9 15:15:41 | 显示全部楼层
比如要对 网站目录下的 test 文件夹 进行加密认证

那么 在 nginx.conf 文件中对应的 server 段中 添加
location ^~ /test/ {
auth_basic            "TEST-Login";
auth_basic_user_file  /root/htpasswd;
}

再在 root 的主目录中 /root/ 创建一个新文件 htpasswd
此文件的书写格式是
用户名:密码
每行一个账户
并且 密码必须使用函数 crypt(3) 加密

官方档说 可以用 Apache 的 htpasswd 工具来创建密码文件
当然也可以使用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 生成的 加密后的密码
按照
用户名:密码
的格式写到 htpasswd 文件中

这样既完成了设置

如果 不用
^~ /test/
而用
/test
的话 那么 将只能对目录进行验证 直接访问其下的文件 将不会弹出登录验证

还有 htpasswd 这个文件的名字可以 自己随意设置
用户名 也是 自己随意设置 无需加密
密码必须使用函数 crypt(3) 加密

评分

参与人数 1威望 +30 收起 理由
cpuer + 30 精品文章

查看全部评分

发表于 2009-9-9 15:16:39 | 显示全部楼层
写的 有点乱 啊 见谅 呵呵 C大 要是有心情 可以帮着 编辑下 嘿嘿
发表于 2009-9-9 15:18:17 | 显示全部楼层

回复 13# 的帖子

不觉得乱,有条理。 kaning
发表于 2009-9-9 15:19:14 | 显示全部楼层
如果是子目录的子目录上限制的话怎么写?
发表于 2009-9-9 15:23:07 | 显示全部楼层

回复 15# 的帖子

子目录的子目录 比如是 123
那么 直接写
^~ /test/123/
或者
^~ /123/
发表于 2009-9-9 15:40:36 | 显示全部楼层

回复 16# 的帖子

 楼主| 发表于 2009-9-9 15:43:59 | 显示全部楼层
密码必须使用函数 crypt(3) 加密
意思就是说,明文下看到的不是真实密码啦?
 楼主| 发表于 2009-9-9 15:45:39 | 显示全部楼层
可以单独安装Apache 的 htpasswd 工具嘛?
如果我卸掉apache,是不是htpaswd工具也没掉了。
发表于 2009-9-9 15:49:55 | 显示全部楼层

回复 19# 的帖子

不是非要 用 Apache 的 htpasswd
可以用上面的 perl 脚本
呵呵

最终 明文显示的 密码 是经过加密后的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-4 16:35 , Processed in 0.068963 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表