场景描述
某些情况下有些资源需要一个基本的认证才能让用户访问。又不太想开发一个认证流程的东东怎么办呢?
解决办法:通过nginx 配置一个基础的http用户密码认证来解决这个问题
安装nginx
这里不详细介绍如何安装,提供centos一句话安装命令吧
yum install -y nginx
创建nginx访问认证文件
nginx认证文件,该文件主要是存储nginx的认证用户密码信息,其文件格式如下:
admin:r5IXRXWSmlBk6
密码应该使用crypt()函数加密。可以用Apache HTTP Server发行包中的htpasswd命令或者openssl passwd来创建此类文件。第一种是使用Apache的htpasswd工具创建(感觉很鸡肋


/opt/apache/bin/htpasswd -bdc /etc/nginx/conf.d/htpasswd admin 12345
命令解释/opt/apache/bin/htpasswd htpasswd工具路径
/etc/nginx/conf.d/htpasswd 生成认证文件路径
admin 12345 用户名及密码
第二种使用openssl创建认证文件(由于每个Linux服务器基本都有SSH服务,openssl也就有啦,靠谱

[root@localhost cert]# openssl passwd 123456
d7FH6kfhAIIFA
[root@localhost cert]# echo 'admin:d7FH6kfhAIIFA' > /etc/nginx/cert/passwd.db
[root@localhost cert]# cat passwd.db
admin:d7FH6kfhAIIFA
[root@localhost cert]#
配置nginx访问认证
随便找一个nginx的虚拟访问路径进行配置吧
location / {#对所有地址进行负载均衡
auth_basic "监控服务";#这里是认证输入用户密码时候弹出的标题
auth_basic_user_file cert/passwd.db;#这里配置的是密码文件存放路径,相对路径为相对nginx根目录
proxy_pass http://tomcats-monitor/;
}#end location
主要配置为:auth_basic 、auth_basic_user_file
重载配置nginx完成启用认证
nginx -s reload
再访问资源试试?

版权申明:本文为博主原创文章,未经博主允许不得转载。
https://www.leftso.com/blog/535.html
时效提示:本文最后更新于【 2021-09-13 14:27:32 】,某些文章具有时效性,若有错误或已失效,请在下方留言。
时效提示:本文最后更新于【 2021-09-13 14:27:32 】,某些文章具有时效性,若有错误或已失效,请在下方留言。
评论区域
评论功能已关闭. 提示:评论功能虽已关闭,关闭之前的评论仍然会展示。