1、用户认证模块
在 nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,nginx 已经安装了该模块。所以整体的一个过程就是先用第三方工具设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 nginx 配置文件中根据之前事先保存的文件开启访问验证。如果不需要这个模块,可以加上 --without-http_auth_basic_module 。
2、安装
2.1 安装 htpasswd 工具
yum -y install httpd-tools
2.2 创建认证用户
htpasswd -c pass.db root //root 并输入密码
再次添加用户时输入时输入
htpasswd pass.db username
会在passwd.db文件中生成用户名和加密的密码。
2.3 nginx配置
server {
listen 80;
server_name yz.zt-spacex.com;
#charset koi8-r;
#access_log logs/host.access.log main;
# 后端接口
location /api/ {
auth_basic "请输入密码"; #这个是提示信息
auth_basic_user_file htpasswd/yz_task; #存放密码文件的路径
proxy_pass http://api;
}
}
2.4 重启nginx
nginx -s reload
访问地址,弹出用户密码框
![](https://img-blog.csdnimg.cn/20210329113521767.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hpeGluZ3poZTI=,size_16,color_FFFFFF,t_70)