Nginx怎么设置访问Web页面时启用密码验证访问?

可能存在的需求

网页不想让所有人访问到,只让知道页面密码的人可以打开

某些组件的web端管理页面无用户名密码认证可直接打开,添加一个用户验证

ES如果不添加search-guard,是否有别的更简便的方式添加head页面的认证

有什么解决办法?

借助Nginx+秘钥文件认证的方式,Nginx提供了一个“ngx_http_auth_basic_module”的模块,这个模块默认情况下就已经安装了,使用这个模块加上httpd-tools中提供的htpasswd方法生成秘钥文件可以满足我们上面的一些需求,关于这个模块的介绍,可以查看nginx官网(ngx_http_auth_basic_module)

安装htpasswd(httpd-tools)

rpm -ivh httpd-tools-2.4.6-88.el7.centos.x86_64.rpm

  • 生成密钥文件


其中,“passwd.db”为密钥文件名字,“gsum”为用户名,根据需求修改

htpasswd -c /etc/nginx/conf.d/passwd.db gsum

回车之后按照提示输入要设置的密码即可,密码默认是MD5加密的,如果不想加密可以在生成时添加-p参数

Nginx怎么设置访问Web页面时启用密码验证访问?
Nginx怎么设置访问Web页面

修改Nginx配置文件
根据官网的文档我们知道,“ngx_http_auth_basic_module”模块的配置只有如下两行:

auth_basic “closed site”; #页面提示信息
auth_basic_user_file conf/htpasswd; #秘钥文件

所以我们在我们的前端页面的Nginx配置文件中加入如下两行配置

Nginx怎么设置访问Web页面时启用密码验证访问?
  • 验证

再次打开我们的前端发现,已经需要输入用户名密码才能访问

htpasswd命令选项参数说明
-c 创建一个加密文件
-n 不更新加密文件,只将htpasswd命令加密后的用户名密码显示在屏幕上
-m 默认htpassswd命令采用MD5算法对密码进行加密
-d htpassswd命令采用CRYPT算法对密码进行加密
-p htpassswd命令不对密码进行进行加密,即明文密码
-s htpassswd命令采用SHA算法对密码进行加密
-b htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码
-D 删除指定的用户

给TA打赏
共{{data.count}}人
人已打赏
技术文档

怎么批量复制、提取电脑文件夹内的所有文件名称?

2021-4-13 22:08:49

技术文档

【wordpress美化教程】简单的一行代码立即让您的菜单小图标旋转起来

2021-6-13 12:53:55

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索