比如要对 网站目录下的 test 文件夹 进行加密认证
首先需要创建一个密码文件 例如 /root/pwd
此文件的书写格式是
用户名:密码
每行一个账户
并且 密码必须使用函数 crypt(3) 加密
可以使用perl 为密码加密 新建 一个 pwdgen.pl 文件 其内容:
#!/usr/bin/perl use strict; my $pw=$ARGV[0] ; print crypt($pw,$pw)." ";
然后执行 chmod +x pwdgen.pl
./pwdgen.pl spring123
spmBrZxsgt/pM
spmBrZxsgt/pM 就是spring123的crypt()密码
然后 将上面用 perl 生成的 加密后的密码
按照
用户名:密码
的格式写到 pwd文件中
密码文件生成好后,在 nginx.conf 文件中对应的 server 段中 添加如下红色的内容
server {
listen 99;
ssi_types *;
ssi_silent_errors off;
server_name localhost;
auth_basic "Welcome to Kepler Admin!";
auth_basic_user_file /root/password/pwd;
location / {
ssi on;
root /root/kepler/admin-console;
}
location /api {
proxy_pass http://10.128.8.88:8080/kepler-collector-admin;
}
}
如果想限制某一个目录的话需要如下配置:
location ^~ /root/kepler/admin-console/ {
auth_basic "TEST-Login!";
auth_basic_user_file /root/password/pwd;
}
如果 不用 ^~ /root/kepler/admin-console/ 而用 /root/kepler/admin-console 的话 那么将只能对目录进行验证,如果直接访问其下的文件,将不会弹出登录验证
重启Nginx服务,使配置生效