Nginx目录密码认证
文章目录
原服务器nginx配置
- 全部采用
https
- 开启了目录浏览功能
server {
listen 80;
server_name pic.fooleng.top;
# 如下为自动转发https设置
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 443 ssl http2;
server_name pic.fooleng.top;
location / {
root /data/pic.fooleng.top; # 图片所在目录
autoindex on; # 开启目录浏览功能
# autoindex_exact_size off; # 关闭详细文件大小统计,让文件大小显示MB,GB单位
autoindex_localtime on; # 开启以服务器本地时区显示文件修改日期
}
ssl_certificate /etc/letsencrypt/live/tools.fooleng.top/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tools.fooleng.top/privkey.pem;
# 如下部分的配置可以查看/etc/letsencrypt/options-ssl-nginx.conf
ssl_session_cache shared:le_nginx_SSL:10m;
ssl_session_timeout 1440m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
}
增加目录加密
创建密码存储文件
vim /etc/nginx/passwd.db
(用户名:密码)
evan:ikcgV/hr0K50I
- 密码的生成方法可以看在Linux下生成crypt加密密码,我使用的是
openssl
命令的方式
openssl passwd -crypt 123
nginx
加密目录设置
# 增加^~表示对目录下的文件访问也需要验证,否则只验证目录
location ^~ /img {
auth_basic "Restricted Area";
auth_basic_user_file /etc/nginx/passwd.db;
charset utf-8,gbk;
}
文章作者 Evan Yu
上次更新 2022-04-11