闲谈 Web 图片服务器

如今不少中小网站(尤为是 Web 2.0 站点) 都容许用户上传图片,若是前期没有很好的规划,那么随着图片文件的增多,不管是管理仍是性能上都带来不少问题。就本身的一点理解,抛砖引玉,以期能引出更具价值的信息。php

事关图片的存储

把图片存储到什么介质上? 若是有足够的资金购买专用的图片服务器硬件或者 NAS 设备,那么简单的很;若是有能力本身开发单独存储图片的文件系统,那么也不用接着往下看了。html

若是上述条件不具有,只想在普通的硬盘上存储,首先仍是要考虑一下物理硬盘的实际处理能力。是 7200 转的仍是 15000 转的,实际表现差异就很大。是选择 ReiserFS 仍是 Ext3 ,怎么也要测试一下吧? 建立文件系统的时候 Inode 问题也要加以考虑,选择合适大小的 inode size ,在空间和速度上作取舍,同时防患于未然,注意单个文件系统下文件个数别达到极限。node

独立,独立的服务器

不管从管理上,仍是从性能上看,只要有可能,尽可能部署独立的图片服务器。这几乎成为常识了(不过在我作过面向 Web 的项目以前就这个问题也被人笑话过)。具有独立的图片服务器或者服务器集群后,在 Web 服务器上就能够有针对性的进行配置优化。好比采用传说中更有效率的 Lighttpd程序员

若是不想在几台机器间同步全部图片,只用 NFS 模式共享一下便可。注意软、硬链接可能带来的问题,以及 NFS 特定的传输速度。web

独立,独立的域名

若是大部分 Web 页面必需要载入不少图片,那么须要注意 IE 浏览器的链接数问题(参见对该问题的测试)。浏览器

前几天有个朋友在线上问我,"一些大网站,图片服务器为何都用另一个域名? 好比yahoo.com 图片服务器用了 yimg.com 的域名?" ,粗糙一点的答案:除了管理方便,便于CDN 同步处理,上面说的 IE 链接数限制也是个考虑因素吧(其余缘由我也不知,有请 Yahoo!的同窗发言) 【还有一个我没考虑到的是 Cookie 的因素,参加楼下高春辉的留言】服务器

雅虎 Web 优化 14 条

关于雅虎 YSlow 工具倡导的 优化 14 条规则,建议每一个 Web 维护人员必须滚瓜烂熟,固然也应该辩证来看--介绍这 14 条规则的页面自己也只能获得 70 多分...其中的第九条和上面说的独立域名之间多少有些矛盾。实际状况要根据本身的 Benchmark 与具体需求而肯定了。工具

有效利用客户端 Cache

不少网站的 UI 设计人员为了达到某些视觉效果,会在一些用户须要频繁访问的页面模块上应用大量的图片。这样的状况,研究代表,对于用户粘度比较高的站点, 在Web 服务器上对这一类对象设置 Expires Header 就是十分有必要的,大量带宽就这么节省下来,费用也节省了下来。顺便说一下,对于验证码这样的东西,要加个简单的规则过滤掉。性能

服务器端的 Cache

在国内,CDN 也是有钱才能玩得起。而相似 Amazon S3 这样的一揽子存储服务,国内尚未出现。因此,充分利用服务器端的 Cache 也是有必要的。Squid 做为反向代理服务器,缓冲图片效果应该说尚可,新浪技术团队贡献的 Ncache 据评测,效果更佳。测试

高解析图片问题

若是网站存在大量高解析度的图片,那么有必要考虑部署 IIPImage 或者相似的软件。

运营问题

不少比较有规模的网站对于用户上传的图片不作任何处理,结果页面上还能看到不少 BMP 格式的图片(我的以为任何网站出现 BMP 格式的图片都是可耻的)...这彻底是运营上的策略之误了。找个程序员投入一点时间写个图片处理模块,对那些"截屏"得来的图片作个转换,投入成本可能远比存储上的开销小,而用户再访问该图片,质量未必能有什么损失,浏览速度无疑好多了。哪一种处理方式更让人接受,不言而喻。

相关文章
相关标签/搜索