服务器之家

服务器之家 > 正文

Nginx上配置Basic Authorization登录服务认证的教程

时间:2019-11-12 15:06     来源/作者:Hunk Shi

关于Basic Authorization
在HTTP中,Basic Authorization基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。
在发送之前是以用户名追加一个冒号然后串接上口令,并将得出的结果字符串再用Base64算法编码。例如,提供的用户名是Aladdin、口令是open sesame,则拼接后的结果就是Aladdin:open sesame,然后再将其用Base64编码,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。最终将Base64编码的字符串发送出去,由接收者解码得到一个由冒号分隔的用户名和口令的字符串。
虽然对用户名和口令的Base64算法编码结果很难用肉眼识别解码,但它仍可以极为轻松地被计算机所解码,就像其容易编码一样。编码这一步骤的目的并不是安全与隐私,而是为将用户名和口令中的不兼容的字符转换为均与HTTP协议兼容的字符集。
优点:

  • 使用非常简单,
  • 开发和调试工作简单,
  • 没有复杂的页面跳转逻辑和交互过程;
  • 更利于发起方控制。

下面我们就来正式看一下如何在Nginx上配置一个Basic Auth认证的下载服务:

建用户和文件夹
新建用户 shareuser:
建data文件夹,并

?
1
chown -R shareuser:shareuser /path/to/data

列出指定目录下的文件:
需要的指令是autoindex on;, 即可列出该目录下的所有文件并可以递归计入子目录。
还有两个辅助的指令

  • autoindex_exact_size on | off; , 即文件大小以字节数显示还是K/M/G显示
  • autoindex_localtime on | off; 以local timezone还是UTC显示文件的修改时间。

配置Basic Auth

两个指令

  • auth_basic "Restricted";
  • auth_basic_user_file ./passwd;

auth_basic_user_file是一个存储用户名密码的文件。需要htpasswd命令来生成,

密码文件生成
首先需要安装

?
1
sudo apt-get install apache2-utils

命令

?
1
htpasswd -c /path/to/passwd username

-c 是新建一个文件, 如果是append到已有文件,不用该选项。
根据提示输入密码即可。
Config Sample
测试项目文件结构如下:

?
1
2
3
4
5
app
 conf
 nginx.conf
   passwd
 data

最终的结果如下:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
user shareuser;
 
 server {
  listen 8011;
 
  root data;
  # index index.html index.htm; #关闭index, 否则会显示index.html而不是列出文件
 
  location / {
   autoindex on;
   autoindex_exact_size off;
   autoindex_localtime on;
 
   auth_basic "Restricted";
   auth_basic_user_file passwd;
  }
 }
}

启动

?
1
nginx -p /path/to/app -c conf/nginx.conf

即可访问。

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部