337 字
2 分钟
Nginx 设置访问账户与密码
2022-05-03

前言#

之前我使用Nginx做过一个完全开放云盘,最近发现Nginx原生支持密码访问,就稍微尝试了一下。

之前的文章:Nginx 做一个简单的云盘

设置访问账户与密码#

Step1. 生成账户和密码

Ubuntu 可以安装一个用来生成密码文件的工具 apache2-utils

这里还找到了一个在线工具:在线 htpasswd 生成器

Terminal window
apt install apache2-utils

然后尝试生成一个密码文件1

Terminal window
htpasswd -cb /etc/nginx/password/pan admin 123456

Step2. 修改nginx的配置文件:

Terminal window
vim /etc/nginx/sites-available/default

具体内容如下:

server {
listen 80;
server_name pan.zodiaclab.top;
charset utf-8;
root /var/www/pan;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
auth_basic "访问限制" ;
auth_basic_user_file /etc/nginx/password/pan; # 密码路径
}

保存并退出。

Step3. 让 nginx 重新加载配置文件或重启:

Terminal window
nginx -s reload # 重新加载
service nginx restart # 重启 nginx

Step4. 访问受限

进入网页后就能看到下面的弹窗了,输入用户名和密码就能进行访问了。

设置指定路径#

使用上面的方法是直接锁定 pan.zodiaclab.top/ 下所有文件,下面尝试对指定路径或文件夹进行加密:

server {
...
location /临时/ {
auth_basic "访问限制" ;
auth_basic_user_file /etc/nginx/password/pan;
}
}

如上,将只锁定 pan.zodiaclab.top/临时/ 下的文件,我尝试过 中文或英文路径 都可以。

Footnotes#

  1. htpasswd命令创建用户和修改密码

Nginx 设置访问账户与密码
https://fuwari.vercel.app/posts/建站/nginx/nginx-设置访问账户与密码/
作者
Asuwee
发布于
2022-05-03
许可协议
CC BY-NC-SA 4.0