最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Nginx 如何配置基础的 basic_auth 密码访问认证
时间:2026-08-16 12:06:49 编辑:袖梨 来源:一聚教程网
Nginx 启用 basic_auth 需生成 .htpasswd 密码文件、在 location/server 块中添加 auth_basic 和 auth_basic_user_file 两行配置,并强制通过 HTTPS 传输。
直接在 Nginx 配置里加两行指令就能启用 basic_auth,核心是生成加密密码文件 + 正确引用路径 + 保证 HTTPS 传输安全。
生成 .htpasswd 密码文件
用 htpasswd 工具创建标准格式的用户凭据文件(Nginx 自带模块不支持明文):
- Ubuntu/Debian 系统:运行 sudo apt install apache2-utils
- CentOS/RHEL 系统:运行 sudo yum install httpd-tools 或 sudo dnf install httpd-tools
- 首次创建文件并添加用户(如用户名 admin):sudo htpasswd -c /etc/nginx/.htpasswd admin,按提示输入密码
- 后续追加用户去掉 -c 参数,避免覆盖已有账号:sudo htpasswd /etc/nginx/.htpasswd user2
- 确认文件可读且权限合理:sudo chmod 640 /etc/nginx/.htpasswd,sudo chown root:www-data /etc/nginx/.htpasswd
在 location 或 server 块中启用认证
把认证限制在具体路径更安全,推荐写在 location 块内:
- 保护整个站点:在 server 块或根 location / { ... } 里添加
- 只保护某个目录(如 /admin/):location ^~ /admin/ { ... },^~ 表示前缀匹配且优先级高
- 写入两行关键配置:
auth_basic "Restricted Area";(引号内是登录弹窗显示的提示文字)
auth_basic_user_file /etc/nginx/.htpasswd;(必须用绝对路径)
检查配置并重载生效
别跳过验证步骤,否则可能 403 或认证不触发:
- 执行 sudo nginx -t 检查语法,看到 test is successful 才继续
- 运行 sudo nginx -s reload 平滑重载配置,不中断服务
- 用 HTTPS 地址访问目标路径(例如 https://example.com/admin/),浏览器应弹出登录框
- 若仍能直接访问,检查是否误写成相对路径、文件权限不对、或配置未加载到实际生效的 server 块
必须注意的安全前提
Basic Auth 本身不加密凭证,仅编码传输,所以:
- 绝对不要在 HTTP 明文环境下使用,否则用户名密码会被轻易截获
- .htpasswd 文件不能放在 Web 根目录下(如 /var/www/html),防止被外部直接下载
- 定期清理不用的账号,密码建议每 3–6 个月更新一次
- 如需叠加 IP 限制,可配合 allow/deny 或 auth_request 模块增强控制
相关文章
- 0和1是什么梗-中间的0.5又是什么意思 08-16
- iphone17promax重量是多少 08-16
- 巴兔手游盒子app如何交易游戏账号 08-16
- 网易云游戏网页版登录入口详情 08-16
- 华为wifi路由器设置密码怎么改(华为wifi路由器设置密码更改方法) 08-16
- Scratch官网登录入口_scratch.mit.edu login社区入口登录 08-16