Nginx作为文件服务器提供下载-验证用户名和密码来限制对资源的访问
在完成搭建Nginx作为文件服务器提供下载之后,为了保证文件的安全性需要通过用户名和密码对文件的访问 。在Nginx中的ngx_http_auth_basic_module 模块允许通过使用“HTTP 基本身份验证”协议验证用户名和密码来限制对资源的访问。
示例配置
location / {
auth_basic "closed site";
auth_basic_user_file conf/htpasswd;
}
htpasswd
我们需要使用来自Apache的一个名为htpasswd工具,用来对密码进行加密。
sudo apt install apache2-utils
mkdir /usr/local/src/nginx/
htpasswd -bc /usr/local/src/nginx/passwd username password
htpasswd -b /usr/local/src/nginx/passwd username password
- -c 创建一个新文件。
- -n 不更新文件; 在标准输出上显示结果。
- -b 使用命令行中的密码而不是提示输入密码。
- -i 从标准输入读取密码而不进行验证(用于脚本使用)。
- -m 强制对密码进行 MD5 加密(默认)。
- -B 强制对密码进行 bcrypt 加密(非常安全)。
- -C 设置用于 bcrypt 算法的计算时间(更高更安全但更慢,默认值:5,有效值:4 到 17)。
- -d 强制对密码进行 CRYPT 加密(最多 8 个字符,不安全)。
- -s 强制对密码进行 SHA 加密(不安全)。
- -p 不加密密码(明文,不安全)。
- -D 删除指定用户。
- -v 验证指定用户的密码。
配置文件
在/etc/nginx/conf.d 目录下,file_system.conf 文件。
server {
listen 5001;
server_name localhost;
auth_basic "closed site";
# 用户、密码文件存放路径
auth_basic_user_file /usr/local/src/nginx/passwd;
location / {
# 文件存放目录
root /home/jing/files;
# 索引功能 开启
autoindex on;
# 自动索引精确大小 关闭
autoindex_exact_size off;
# 自动索引本地时间 开启
autoindex_localtime on;
}
}
重启Nginx
sudo service nginx restart
网页访问
网页访问文件时,会弹出登录框,登录之后即可访问。
|