Nginx服务器如何处理相关的图片

开发 前端
Nginx服务器在处理图片的时候需要我们不断的进行相关的学习。下面的文章就会让大家有所了解。希望大家能找到自己想要的。

Nginx服务器在进行图片处理的时候有不少的问题需要我们去详细的学习。说到访问权限控制,很多看了Nginx相关文章的朋友都会自然联想到X-Accel-Redirect这个头。这个头有个缺陷,就是所有的访问都会先经过一个fastcgi来判断权限。

在下载系统上,用这个方法是非常合适的,但是在访问量非常大的图片服务器,单单用这个方法会使大量无需权限判定的图片也经过一个fastcgi处理,多此一举并且无端耗费大量的资源。虽然X-Accel-Redirect是一个新的方案,但是并不代表它能很好的解决所有问题,同时也不妨碍继续思考解决问题的其它办法。图片服务器加上权限判断主要用于博客和相册这样的系统。

在网上稍微观察,可以看到目前大部分的博客相册等系统并没有针对图片本身加入权限判断,而仅仅是将网页部分的权限控制住。这样的话很多网友将其图片加锁,实际上此图片在外部仍有办法打开。我估计此原因有其一是实现起来有性能问题,其二是诸多网站将图片放置到CDN上,而CDN并没有对此有相应的方案的缘故。走了一圈发现只有QQ空间在用带权限的图片,而它看上去是直接用fastcgi实现的,性能居然还不错,佩服一下。下文单纯解决性能问题,其思路是在访问图片附近放置一个控制文件,通过Nginx判断决定是否要到fastcgi认证,其原理类似apache的.htaccess。有用到CDN的,因为CDN多数是squid,要加入清理squid缓存的机制。

1、针对单一图片的控制

如果图片按照哈希结构放置,那么用户的图片加锁后要把每一张图片都加上控制文件,如果该用户图片较多,写入时稍嫌多些。比如有一张图:

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

写上一个空文件:

  1. /data/image/a/z/asdfqerqwegasd.jpg.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. }  

以上就是对Nginx服务器在处理图片是的相关问题。

【编辑推荐】

  1. Nginx服务器的性能依然强劲
  2. Nginx缓存的缺点和优点专家评价
  3. Nginx缓存如何避免传统缓存的错误
  4. Nginx php如何解决502 Bad Gateway错误
  5. Nginx proxy反向代理的十五大技术特点
责任编辑:张浩 来源: 博客园
相关推荐

2010-09-01 15:40:10

DHCP服务器

2010-08-31 19:48:25

DHCP服务器IP

2018-09-21 09:03:34

windows服务器80端口

2010-09-02 10:01:38

2010-03-29 13:49:40

Nginx图片处理

2019-05-09 15:31:23

攻击服务器安全

2019-12-23 10:20:12

Web图片优化前端

2010-05-17 10:04:45

2018-02-27 11:08:11

2018-10-29 09:39:34

NginxVSFTP服务器

2017-12-27 10:18:09

ApacheNginx服务器

2021-07-28 23:32:09

Nginx服务器Https

2020-04-15 20:57:57

NginxWeb服务器

2018-10-18 10:17:40

服务器并发多线程

2011-02-25 10:58:01

PROFTPD命令

2021-11-24 08:00:00

服务器Web系统

2018-10-26 09:52:25

Nginx服务器负载均衡

2010-03-30 17:35:04

Nginx服务器

2023-10-12 19:46:26

Nginx服务器

2013-03-28 11:00:40

服务器数据虚拟化
点赞
收藏

51CTO技术栈公众号