文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Nginx进阶 配置-Nginx auth_basic 身份认证

2023-08-18 15:18

关注

前言

在公司前期投入研发时,尤其针对于ZF的客户,往往是很多需求含糊不清,可项目的里程碑节点已是板上定钉。在这种情况下,需求组应和研发组协同推敲,不断的制定计划、出demo,拿着我们推测出的构建想法及原型去征求客户的意见。
对于大屏、驾驶舱等可以前端先行的项目,往往不再是拿着高保真图片,而是部署到演示环境,将客户提供的真实数据展现于相关图表,数据可以使用前端mock数据,不用任何后端系统支撑。还有更low的是直接写死在图表上。用这个服务做演示汇报。这种情况下,有些驾驶舱、大屏的数据就涉及到敏感问题。演示的环境基本都是http://xxx.xxxx.xxx/xxxx ,针对于大屏并没有去配置用户权限控制,甚至这个时候后台的鉴权服务还没有搭建起来,还在属于设计的阶段,对于内网部署的还好去解释不做用户的鉴权。如果客户要求放在外网上,只要是拿到了url地址,任何人都可以访问。在前后台都不愿意去写一套登录代码认证的情况下,0代码完成用户认证,可以考虑使用Nginx的 auth_basic 。

个人经历

客户第二天需要验收大屏页面,加班到晚上9点刚把前端的包部署完准备下班,突然领导要求访问的大屏页面地址加个用户名登录,这样数据放在互联网上谁都可以访问查看,太危险,造成数据泄露。起初想法是让前端去实现,尽快搞完下班,但是前端组有别的任务,压力给到我这边。后来想到了nginx的负载均衡,应该是可以做到,查了相关资料,半小时搞定。记录下文章,给日后也有相关需求的项目团队提供帮助。

auth_basic 配置步骤

1.生成密码(Linux)

Nginx绝大部分公司使用的目的还是作为一个负载均衡的功能,当然Nginx里还提供了其它的一些作用。今天一起来学习下Nginx的 Auth_basic 鉴权。
Nginx下载、安装、启动这种弱智般的操作流程不再多写。要是不会建议转行哈。
ngx_http_auth_basic_module模块允许通过使用“HTTP基本认证”协议验证用户名和密码来限制对资源的访问。 大致的过程就是在nginx下生成一个用户密码的配置文件,而后在conf配置文件中配置一下就OK了。
访问还可以根据地址、子请求的结果或JWT进行限制。同时通过地址和密码限制访问由满足指令控制。
同时,auth_basic要求放置的用户文件需要进行hash值计算,要对明文密码进行处理。用户文件后面说明。
注:加密处理只针对Linux服务器,Windows server不需要加密后的用户文件,不需要。不需要!!!只需要将明文用户密码作为一个文件就可以,网上没有对windows server的文件解释,自己摸索了半天才发现。

yum install httpd-tools -y

确定服务器是否安装了 http,而后生成用户名密码

htpasswd -nbm admin 12345678

使用了如上命令后,会生成加密后的hash值,大概是如下的样子

admin:$apr1$nkxLxBPa$EGa.u5yKuQ08m6g/8bGb9.

创建一个文件,不要有后缀的,将生成的用户密码贴进来。如果是多个用户,换行贴入就可以。文件可命名为auth_basic_user_file。放在可以找到的位置路径上。

2.配置

        location / {            root   html;            index  index.html index.htm;# 开启功能模块,关闭为offauth_basic on;# 指定密码配置文件auth_basic_user_file home/web/auth/auth_basic_user_file;# 验证通过后 跳转的相关路径proxy_pass   http://127.0.0.1:9003;        }

代码解读

nginx监听指定端口,用户访问指定的端口后,跳出验证用户密码,auth_basic on 代表打开验证登录,输入的用户密码要在生成的用户信息文件里可以匹配的上,完成验证后,跳转到9003端口的页面上。

业务思路

我这边的服务器是window server,我认为Linux也一样可以参考,首先将服务器的9003号端口也就是我的大屏部署的端口进站关掉,这样即便项目部署成功去访问9003是访问不进来的,只能通过访问我的ngxin监听的端口。如果访问我的nginx监听端口,则跳转出登录,登录成功后内部自己跳转到9003。如下图
在这里插入图片描述

访问9007验证登录,输入配置的南京发改委账号信息,验证成功后显示大屏:
在这里插入图片描述
在这里插入图片描述

0代码完成用户的登录。

  0 error(s),0 warning(s)

来源地址:https://blog.csdn.net/goGoing_/article/details/126776750

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯