在 nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容。默认情况下,nginx 已经安装了该模块。所以整体的一个过程就是先用第三方工具设置用户名、密码(其中密码已经加过密),然后保存到文件中,接着在 nginx 配置文件中根据之前事先保存的文件开启访问验证。
生成密码可以使用 htpasswd
1、编辑配置文件
[root@web01 extra]# vim www.conf
#暴露BD端excel数据目录
location /excelData {
auth_basic "Please input password";
auth_basic_user_file /data/www/php_xiuxiu_admin/htpasswd;
alias /data/www/php_xiuxiu_admin/storage/app/tmpExcel/ ;
autoindex on; # //开启目录浏览功能;
autoindex_exact_size off; #/ 关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b;
autoindex_localtime on; # 开启以服务器本地时区显示文件修改日期!
}
2、使用htpasswd生成密码文件
[root@web01 extra]# which htpasswd #查看是否安装htpasswd
/usr/bin/which: no htpasswd
安装httpd,因为htpasswd是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。
[root@web01 extra]# yum -y install httpd #安装httpd
[root@web01 extra]# which htpasswd #查看是否安装
[root@web01 extra]# rpm -qf /usr/bin/htpasswd #查看是否安装
[root@web01 extra]# htpasswd -cb /application/nginx/conf/htpasswd ceshi 123789 #生成密码文件
[root@web01 extra]# chmod 400 /application/nginx/conf/htpasswd #为了安全设置文件权限
3、检查语法并重启
[root@web01 extra]# /application/nginx/sbin/nginx -t
[root@web01 extra]# /application/nginx/sbin/nginx -s reload
1. 浏览器查看
(1)输入www.etiantian.org-->输入用户名密码-->登录成功
(2)不输入用户名或密码,则报错401未授权