利用nginx如何给后台加上双重认证,加上http基本验证(Basic Auth)即可

Nginx/Web服务器
575
0
0
2022-03-28

一般网站后台,为安全起见,都会加上双重认证,第一层直接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. 验证