您的位置:首页 > 运维架构 > Nginx

nginx作图片服务器的访问权限控制

2010-05-30 14:30 531 查看
1、针对单一图片的控制
如果图片按照哈希结构放置,那么用户的图片加锁后要把每一张图片都加上控制文件,如果该用户图片较多,写入时稍嫌多些。
比如有一张图:
/data/image/a/z/asdfqerqwegasd.jpg
写上一个空文件:
/data/image/a/z/asdfqerqwegasd.jpg.lock
然后在nginx配置判断:
location / {
root /data/image/;
if ( -f “${request_filename}.lock” )
{
#rewrite ^(.*)$ http://www.sudone.com/access.jsp?url=$1 last;
return 403;#test
}
}
这样,只要在图片旁边有一个.lock文件,就会访问到403 Forbidden;使用rewrite会将图片链接和cookie定位到后端,由后端返回判定结果X-Accel-Redirect头或者重定向到另外一个jsp去填密码。
2、针对目录的控制
如果图片是按照目录放置,那么配置会稍微复杂一些。
location / {
root /data/image/;
if ( $request_filename ~ ^(.*)/[^/]*$ ){
set $dir $1;
}
if ( -f “${dir}/lock” )
{
#rewrite ^(.*)$ http://www.sudone.com/access.jsp?url=$1 last;
return 403;#test
}
}
首先用正则表达式取出图片路径的目录,然后带上控制文件名判断此文件是否存在,这样只要在图片的目录中放置一个名叫lock的空文件就能控制完整个目录:
/data/image/a/z/lock
测试一下,效果不错,只要控制文件存在,访问立刻403;删去控制文件,访问正常。

本文章转自:http://vps.ebandao.cn/Nginx/fangwenkongzhi/0315/12632/

分享技术快乐自我
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: