Nginx 账户认证功能
由 ngx_http_auth_basic_module 模块提供此功能
官方帮助:
http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html
语法格式:
Syntax: auth_basic_user_file file;
Default: —
Context: http, server, location, limit_except
范例:
auth basic 提示字符串
auth basic user file 后跟密码账户的文件路径
第一步:安装
需要安装包来启动这个服务
centos安装包
yum -y install httpd-tools
ubuntu安装包
apt -y install apache2-utils
第二步:创建访问认证用户和密码
创建用户 -c
非交互式方式提交密码 -b
htpasswd -cb /apps/nginx/conf/.htpasswd user1 123456 #创建用户、密码和存放文件
cat /apps/nginx/conf/.htpasswd #查看存放用户密码的文件
user1:$apr1$2luIRVEi$RhPG6IuR5Jvn9kghpnGPH/
再创建第二个账户,不需要加c,加c就把第一个覆盖了
htpasswd -b /apps/nginx/conf/.htpasswd user2 123456
第三步:创建资源
cd /data/nginx/html/pc/
mkdir admin
echo admin page > admin/index.html
第四步:配置资源可认证访问
vim www.meng.org.conf
server {
listen 80 ;
server_name www.meng.org;
root /data/nginx/html/pc/;
location /admin { # 访问admin这个文件是需要密码的
auth_basic "please input username and password"; # 提示字符串
auth_basic_user_file /apps/nginx/conf/.htpasswd; # 账户密码文件
}
}
nginx -s reload
tail -f /apps/nginx/logs/access.log 打开访问日志
在另一机器进行访问curl www.meng.org/admin/ 报状态码401(质询) 弹出对话框,输入用户密码
新版本的浏览器不显示提示字符串 IE浏览器可以 在windos命令行 输iexplore调出IE浏览器
也可非交互式访问 curl http://user1:[email protected]/admin/
admin page
以上走的是http协议,账户密码可以被抓包软件抓到。 不加密的协议,都可以被抓到包。