为什么要将图片服务器分离出来?
图片通常比较大,下载需要更长的时间,而web容器并发数也是相当宝贵的仅次于数据库。
传统浏览器一个窗口只占用一个链接数,目前主流浏览器都支持多线程下载,下载HTML页面同时,采用多线程下载其它多媒体数据。
我们举一个例子,你的服务器并发能力只用1000,早期浏览器不支持多线程,所以同一时刻,你的服务器可以承受1000个人同时访问。 但现在不同了,基本所有的浏览器都支持多线程,假如你的页面中有9张小图片,同一时刻你的服务器仅仅能应付1000/10 = 100个用户。
所以我们要将图片和其他多媒体文件分离出来,单独使用一台服务器处理请求。
![]() | 提示 |
|---|---|
图片服务器建议使用lighttpd与squid缓存配合使用效果更好或购买CDN的服务。 |
日期有利于归档
/www/images /www/images/2008 /www/images/2008/01 /www/images/2008/01/01
分类不同用途的文件
/www/images /www/images/theme/2009 # article id 000001 /www/images/article/2009/01/000001 # product id 00001 /www/images/product/2009/01/01/00001 # member name neo /www/images/member/2009/01/01/neo
根据你的数据量,创建目录深度, 并且目录深度有规律可循。
虽然64bit 文件系统不限制文件数量与目录深度,但是我还是建议按我的方式规划目录。
这样规划目录便于缓存控制,如:
images/2008/* 永久缓存
images/2009/* 缓存一个月
images/2010/* 缓存一小时
images/2010/06/* 缓存5分钟