图片-稻子网
图片-稻子网
图片-稻子网
图片-稻子网

图片缓存服务器-Nginx服务器如何处理相关图片

Nginx服务器在处理图片的时候,有很多问题需要我们仔细研究。说到访问控制,很多看过Nginx相关文章的朋友自然会想到X-Accel-。这个有一个缺陷图片缓存服务器,就是所有的访问都会先通过一个来判断权限。

在下载系统上,这种方式非常适合,但是在流量非常大的图片服务器中,单独使用这种方式会造成大量未经许可的图片处理,没有必要,无故消耗大量资源. X-Accel-虽然是一个新的解决方案图片缓存服务器,但并不代表它可以很好地解决所有问题,也不妨碍你继续思考其他方法来解决问题。图片服务器加权限判断主要用于博客、相册等系统。

在网上稍微观察一下,可以看出目前的博客、相册等系统大多没有对图片本身添加权限判断,而只是对网页的权限进行控制。在这种情况下,很多网友锁定了自己的图片,其实在外面还是有办法打开这张图片的。我估计造成这种情况的原因之一是实现上存在性能问题,另一个是很多网站将图片放在CDN上,而CDN对此没有相应的计划。逛了一圈,发现只有QQ空间是有权限使用图片的,而且好像是直接实现的,性能其实还不错。我很欣赏它。下面简单解决性能问题。这个想法是在访问的图像附近放置一个控制文件,并使用 Nginx 来确定是否进行身份验证。原理类似。对CDN有用,因为大部分CDN都是squid,所以应该增加清理squid缓存的机制。

图片[1]-图片缓存服务器-Nginx服务器如何处理相关图片-稻子网

1、控制单张图片

图片[2]-图片缓存服务器-Nginx服务器如何处理相关图片-稻子网

如果图片是放在hash结构中的,那么在用户的图片被锁定后,每张图片都要加上一个控制文件。如果用户的图片比较多,就写太多了。比如有一张图:

图片[3]-图片缓存服务器-Nginx服务器如何处理相关图片-稻子网

  1. /data/image/a/z/asdfqerqwegasd.webp 

图片[4]-图片缓存服务器-Nginx服务器如何处理相关图片-稻子网

写一个空文件:

图片[5]-图片缓存服务器-Nginx服务器如何处理相关图片-稻子网

  1. /data/image/a/z/asdfqerqwegasd.webp.lock 

然后在Nginx中配置判断:

  1. location / {  
  2. root /data/image/;  
  3. if ( -f "${request_filename}.lock" )  
  4. {  
  5. #rewrite ^(.*)$ http://www.sudone.com/access.jsp?url=$1 last;  
  6. return 403;#test  
  7. }  

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片