配置nginx下载服务器并要求输入用户名密码进行身份验证:安装工具组httpd-tools并使用里边的htpasswd工具生成加密的密码文件,然后配置nginx的auth_basic与auth_basic_user_file
① 安装工具组 httpd-tools:
CentOs 使用 yum 安装:
yum -y install httpd-tools
Debian 或 Ubuntu 系统使用 apt-get 安装:
apt-get install mini-httpd
② cd到一个你准备用来存放密码文件的地方,使用 htpasswd 命令生成一个密码文件:
htpasswd -c yanzen.pass user001
# 在当前工作目录生成一个文件名为yanzen.pass的文件,用户名为 user001 ,执行完上述命令后,会让你输入两次密码。
htpasswd 的参数说明:
-c 指定文件名创建密码文件,如果这个文件已经存在,那么它会被重新写入,原内容被覆盖
-n 不创建更新文件,只将加密后的用户名密码显示在屏幕上
-m 默认采用MD5算法对密码进行加密
-d 采用CRYPT算法对密码进行加密
-p 不对密码进行进行加密,即使用普通文本格式的密码
-s 采用SHA算法对密码进行加密
-b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
-D 删除指定的用户
③ 修改nginx的配置文件:
location /dlfile {
auth_basic "Authorization";
auth_basic_user_file /www/pass/yanzen.pass; # 指定密码文件的路径
alias /download;
charset utf-8;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
PS:如果认证是对整个域名进行的,那么应该将 auth_basic 与 auth_basic_user_file 配置在server 块之中。
捐赠通道,感谢!🦀🦀