当前位置: 首页 > news >正文

Nginx账户认证功能

一,什么是Nginx账户认证功能

Nginx 账户认证(HTTP Basic Auth)是 Nginx 自带的访问权限控制功能,通过用户名 + 密码验证,限制未授权用户访问网站内容。

二,功能

  1. 保护私密站点:防止未授权用户访问测试环境、后台管理、内部网站、私有文件。
  2. 简单安全防护:不用写代码,Nginx 直接实现登录弹窗验证,低成本提升安全。
  3. 权限访问控制:只允许指定账号访问,避免爬虫、陌生人随意访问服务器资源。
  4. 运维常用安全手段:常用于内网服务、监控平台、临时项目、敏感页面保护。

三,工作原理

  1. 用户访问网站 → Nginx 弹出账号密码登录框
  2. 用户输入账号密码 → Nginx 比对密码文件
  3. 验证通过 → 允许访问
  4. 验证失败 → 返回 401 拒绝访问

四,示例

1.首先创建认证用户与密码文件

htpasswd -cmb /usr/local/nginx/conf/.htpasswd admin lee
  • # -c:创建新的密码文件(仅第一次用)
  • # -m:使用 MD5 加密(兼容 Nginx)
  • # -b:非交互模式,直接在命令行传入密码
  • # admin:用户名
  • # lee:admin 用户的密码
htpasswd -mb /usr/local/nginx/conf/.htpasswd lee lee
  • # 追加用户 lee,密码 lee
  • # 注意:这里不能再加 -c,否则会覆盖文件
cat /usr/local/nginx/conf/.htpasswd admin:$apr1$haGCKgCT$myogggALmqNecTyNupsWQ/ lee:$apr1$H97AyQPF$kGU.Tc4zn1E4Zkp/M4R6G.
  • 这是 Nginx 支持的密码文件格式:用户名:加密后的密码
  • Nginx 会读取这个文件,验证访问者的账号密码

2.创建站点目录与测试文件

mkdir /webdata/nginx/timinglee.org/lee/login echo login > /webdata/nginx/timinglee.org/lee/login/index.html
  • 创建目录 /webdata/nginx/timinglee.org/lee/login
  • 在目录下创建 index.html,内容为 login,用于访问测试

3.Nginx虚拟主机配置

server { listen 80; server_name lee.timinglee.org; location /login { root /webdata/nginx/timinglee.org/lee; index index.html; auth_basic "login password"; auth_basic_user_file "/usr/local/nginx/conf/.htpasswd"; } }
  • listen 80:监听 80 端口(HTTP 默认端口)
  • server_name lee.timinglee.org:绑定域名 lee.timinglee.org
  • location /login:匹配访问路径 /login
  • root /webdata/nginx/timinglee.org/lee:站点根目录,访问 /login 时,Nginx 会查找/webdata/nginx/timinglee.org/lee/login/index.html
  • index index.html:默认首页文件
  • auth_basic "login password":开启 HTTP 基础认证,浏览器会弹出提示语 login password
  • auth_basic_user_file "/usr/local/nginx/conf/.htpasswd":指定密码文件路径,Nginx 会用这个文件验证账号密码

4.重载 Nginx

# 先检查配置是否正确(避免 reload 失败) nginx -t # 重载配置,不中断服务 nginx -s reload

5.测试

五,总结

1.在验证的时候会碰到下面图片的问题

有图片可知

  • 账号密码认证是成功的(否则会返回 401 Unauthorized)
  • 请求已经到达你的 Nginx 服务器,但 /login/ 路径找不到对应的文件

2.解决方法

执行以下代码

nginx -t

我得到的结果

这说明:配置语法是正确的,可以正常启动 / 重载,但存在一个虚拟主机配置冲突。

把另一个配置文件删了即可解决问题

http://www.jsqmd.com/news/831917/

相关文章:

  • Cursor Free VIP终极指南:永久免费解锁AI编程助手的高级功能
  • 代码库分析实战:从静态解析到架构可视化的自动化工具链
  • 从手动到自动化:用AgentEval构建Agent评测体系
  • Guardrails框架:为LLM应用构建可靠输出护栏的设计与实践
  • 在Node.js后端服务中集成多模型API,用Taotoken统一管理调用
  • ARM Cortex-A520集群架构与缓存优化配置指南
  • Arm Neoverse处理器仿真模型与Iris组件深度解析
  • 2026年5月新消息:开封雨水调蓄池专业直销厂家深度解析——河北旭景程环保科技 - 2026年企业推荐榜
  • NB-IoT 协议详解
  • 基于RP2040 Prop-Maker Feather与CircuitPython的HAL 9000交互道具制作全解析
  • 嵌入式开发入门:从GPIO控制到串口通信的Hello World实战
  • BUFF框架:贝叶斯不确定性引导的图像超分辨率技术
  • GPT-4 API交互式实验场:开发者如何自建安全可控的Playground
  • RTD2660H/RTD2668显示驱动板:从硬件解析到OSD菜单调校全攻略
  • Python开发者一分钟接入Taotoken使用OpenAI兼容协议调用模型
  • 哪个降AI工具好用?4款论文降AI率对比免费试用看降幅
  • Harness Engineering:智能体集群弹性伸缩实战
  • GrokTeam vs HeavySkill:两种多智能体推理范式的深度对比
  • 大模型量化利器bitsandbytes:原理、实战与QLoRA微调指南
  • 2026年Q2河北仿真草坪实力厂家盘点:如何避开选购陷阱? - 2026年企业推荐榜
  • Claude技能库实战:从提示词到工程化AI应用开发
  • 开源项目仪表盘开发指南:基于React、Next.js与GitHub API的实践
  • AI智能体协同工作流:构建多智能体分析团队的技术实践
  • 对比直接使用原生API体验Taotoken聚合服务在稳定性上的优势
  • 【限时解密】Midjourney内部风格分类树(2024.06最新版):137个细分风格节点首次对外披露,含6类商业禁用风格预警标识
  • Adafruit HUZZAH32 ESP32开发板:从硬件解析到无线通信实战指南
  • RK3568内核编译实战:从配置到固件生成的完整指南
  • 声磁同步定点仪怎么选?工厂电缆故障定位实用参考
  • 现代前端架构解析:模块化状态管理与数据流实践
  • 文件描述符的 3 层间接——从 fd 整数到 struct file 到 inode 的完整映射链