图片服务器

一、 必要性

我们知道,无论对于Apache还是IIS,图片始终是最消耗系统资源的,如果将图片服务和应用服务放在同一个服务器的话,应用服务器很容易会因为图片的高I/O负载而崩溃,因此对于有些大型网站项目,我们有必要将图片服务器和应用服务器分离。部署独立的图片服务器(甚至是服务器集群)是大型网站图片存储解决方案中最基础的,因为有了独立的图片服务器后,我们才能对图片服务器做更有针对性的性能优化,比如从硬件角度说,图片服务器可以配置高端的硬盘,7200转的换成15000转的,而CPU却只要一般就可以了;从软件角度说,可以为图片服务器配置特殊的文件系统来满足对图片的I/O请求,如淘宝的TFS,就很好地解决了大规模小图片文件带来的I/O噩梦,同时,我们也可以采用nginx、squid来代理图片请求等等。

二、 如何进行图片上传和同步

1. NFS挂载方式


2. FTP上传方式

和上面nfs不一样的是,用户上传完图片后是利用ftp同步到各个图片服务器的,php、java、asp.net基本上都能操作ftp。这样的话每个图片服务器就都保存一份图片的副本,也起到了备份的作用。但是缺点是将图片ftp到服务器比较耗时,如果异步去同步的话又会有延时,不过一般的小图片文件也还好了。

三、 设计图


[if !supportLists]一、[endif]如何满足一张图片多种尺寸显示的要求?

传统的做法是:1. 将一张图在上传时就进行切割或压缩成不同需求的多张图片存放到服务器。这种做法的弊端就是:消耗服务器资源严重以及不能根据业务扩展去扩展。

2. 在客户端进行图片拉绳。这种做法的弊端:数据传输流量浪费,而且拉绳之后图片变形。

现在的解决办法:图片根据请求的尺寸参数,在服务器端就进行切割或压缩,以适应请求的尺寸比例。

比如:

原图:http://223.202.3.245:81/upload/store/goods/2/2014/09/29/2_455f7dcc676a848d60bda171a470b412.jpg


40x40的图:

http://223.202.3.245:81/upload/store/goods/2/2014/09/29/2_455f7dcc676a848d60bda171a470b412.jpg_40x40.jpg

phpForApache

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容