Nginx基于Basic Auth实现静态资源的访问权限控制

Nginx基于Basic Auth实现静态资源的访问权限控制

前言

最近遇到一个小项目,有这样一个需求:需要把一些静态资源挂在web容器下提供给对方,毫无疑问,可以用nginx实现,但需要一定的鉴权(账号密码或token)不同的用户能访问的资源是不一样的,因为项目很小,项目金额也有限,肯定是考虑最小的成本实现,因此查找了一些nginx相关的资料。

教程

nginx安装

这里就不说了,百度一大堆,此处省略大约一万字…………

修改nginx.conf配置文件

主要是加以下两行

auth_basic "Please input password"; #提示输入用户名和密码的提示框
auth_basic_user_file /etc/nginx/conf.d/auth_pwd.auth; #密码文件

加在server /http /location 都可以,这个看每个人的需求

生成密码

  1. apache 带的 htpasswd(需要另外安装,具体可以搜索以下)
  2. openssl 自带工具(装有sshd的linux都自带了)推荐

这里就介绍openssl密码生成方式,如下:

	openssl passwd 密码明文

实操:

[root@localhost conf.d]# pwd
/etc/nginx/conf.d
[root@localhost conf.d]# openssl passwd Sec@123456
wrg8FUthRnwdQ
[root@localhost conf.d]# echo -n "test:wrg8FUthRnwdQ" > auth_pwd.auth
[root@localhost conf.d]# 
注:这里的test:wrg8FUthRnwdQ是用户名:生成的密码密文

常见问题

  1. auth_basic_user_file 配置的路径不对,nginx不会有报错信息,这点比较难发现,配置的时候要特别留意
  2. Chrome 一次输错密码之后,不会重新弹出对话框了,测试的时候可以使用chrome 无痕窗口,这样每次都会弹出密码输入窗口

参考

1.Nginx 官方文档 - Nginx Documentation

2.Nginx 官方文档 - Module ngx_http_auth_basic_module

3.victorc666-Nginx配置auth密码鉴权的方法

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值