在 Nginx 中设置保护网络目录的密码

发布于 2023-06-25  269 次阅读


有些站长通常需要以这样或那样的方式保护他们的网页。比如 file station
所以就需要给站点某些目录加上密码
在本教程中,将展示一个简单但有效的方法,在运行 Nginx 作为 Web 服务器时密码保护 Web 目录


一、创建验证文件

在一个你知道的目录新建一个文件(比如 .password)最好是放到NGINX的文件夹下或者是站点目录下
文件格式为 username:password
但是呢,这个密码不是明文的,需要经过加密

二、生成加密密码

执行命令
perl -le 'print crypt("your-password", "salt-hash")'
实例
perl -le 'print crypt("password", "abcd")'
盐值随便敲几个字母数字就可以了
然后复制输出的结果(注意要选上小数点)
然后保存到第一步的文件里面(utf-8)

三、更新 NGINX 配置

在配置中插入两行

auth_basic "notification";
auth_basic_user_file /.../filename;

实例

location /files {
    auth_basic "Please verify your identity";
    auth_basic_user_file /home/wwwroot/www.baidu.com/.password; 
    }

直接放到 server { 下面的话就是全站加密
然后重启 NGINX 就可以了
出现 40x 错误的话检查一下加密密码或者文件名是否有误