Nginx可以通过auth_basic模块进行简单设定,从而支持HTTP的基本认证,这篇文章将结合实例介绍一下具体的使用方法。
环境准备
[root@liumiaocn ~]# nginx -v
nginx version: nginx/1.16.1
[root@liumiaocn ~]#
[root@liumiaocn ~]# systemctl status nginx |grep Active
Active: active (running) since Wed 2020-01-29 00:52:54 EST; 3min 8s ago
[root@liumiaocn ~]#
步骤1: 准备认证所需要的密码文件
在/etc/nginx/conf.d下生成名为passwd的文件
[root@liumiaocn conf.d]# pwd
/etc/nginx/conf.d
[root@liumiaocn conf.d]# ls
[root@liumiaocn conf.d]#
使用openssl命令生成如下格式的内容(也可以使用htpasswd命令生成,格式相同即可)
用户信息格式:用户名:用户密码
注意:用户密码为加密之后的方式,示例日志如下所示
[root@liumiaocn conf.d]# echo "liumiaocn:"$(openssl passwd -crypt liumiao) >passwd
[root@liumiaocn conf.d]# cat passwd
liumiaocn:9Rz6nhLoBkXIU
[root@liumiaocn conf.d]#
这样,用户名为liumiaocn,用户密码为liumiao的认证文件已经准备就绪了。另外,需要注意的是此文件即时起效,可以保存多行,每行对应一个用户的HTTP基本认证信息。
步骤2: 修改location段
在location段中添加如下内容:
auth_basic "Login Auth";
auth_basic_user_file conf.d/passwd;
步骤3: 重新加载配置文件
使用如下命令重新加载配置文件
加载命令:nginx -s reload
[root@liumiaocn nginx]# nginx -s reload
[root@liumiaocn nginx]#
当然重启Nginx可以起到一样的作用
步骤4: 结果确认
使用nginx配置的服务打开页面时,会显示如下登录验证的弹出窗口,正确输入用户名和密码之后即可显示nginx配置的页面了。
如果用户名或者密码错误会提示重新登录
这样,在Nginx中添加基本的HTTP认证就完成了。