开发要求将一批图片放到公网上面进行转发,将图片放到/export/tupian下
location ^~/tupian {
root /export/;
autoindex on; #开启索引功能
autoindex_exact_size off; #关闭计算文件确切大小(单位bytes),
autoindex_localtime on; #显示本机时间而非 GMT 时间
}
但是发现转发后,获取一张图片后可以遍历整个目录,这对于暴露在公网是非常危险的
解决方法有两种
方法1 加一层判断只能看到图片,对于其他访问返回403
location ^~/tupian {
root /export/;
if ($uri !~* "(.*)\.(png|jpg|pdf|mp4)") {
#uri访问非具体文件,返回403
return 403;
}
autoindex on; #开启索引功能
autoindex_exact_size off; #关闭计算文件确切大小(单位bytes),
autoindex_localtime on; #显示本机时间而非 GMT 时间
}
方法2 给tupian这个目录加密码
location ^~/tupian {
root /export/;
auth_basic "Please input password";
auth_basic_user_file /etc/nginx/conf.d/passwd;
autoindex on; #开启索引功能
autoindex_exact_size off; #关闭计算文件确切大小(单位bytes),
autoindex_localtime on; #显示本机时间而非 GMT 时间
}