一般网站后台,为安全起见,都会加上双重认证,第一层直接nginx认证,通过后再用数据库的用户名和密码第二次认证,通过才能打开后台。
其实方法耶很简单,如下:
1. nginx 配置文件
cat /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name www.demo.com;
#..其它配置项目省略
location ^~ /api {
auth_basic "authentication";
auth_basic_user_file conf.d/.htpasswd;
}
#..其它配置项目省略
}
2. 创建一个 htpasswd帐密文件
# 格式每行一个账户
用户名:密码
# nginx 可以直接使用 Apache 的 htpasswd命令创建的密码文件。
# 例如创建一个文件名为 htpasswd、帐号为 dongnan、密码为 zongming.net 。
htpasswd -bdc htpasswd dongnan zongming.net
如果没有 htpasswd
命令,也可以使用 openssl passwd
命令代替。
echo -n 'dongnan:' >> .htpasswd
openssl passwd -apr1 zongming.net >> .htpasswd
cat -A .htpasswd
dongnan:$apr1$nM8/P9Os$7hFSdSKCXejSxMYagNLYE/$
3. 重启 nginx
nginx -t && nginx reload
4. 验证