让你的网站的不同组件使用不同的域名 并且/或者 使用不同的服务器,如
www.glasswall.org #信息、宣传相关的应用, 服务器名home
bbs.glasswall.org #论坛应用, 服务器名bbs
image.static-glasswall.org #图片,服务器名static
js.static-glasswall.org #javascript,服务器名static
html.static-glasswall.org #静态html,服务器名static
假设首页 /index既包含动态内容,又包含图片和js,使用上述方案有什么好处?
1.
不同域名,可以提高浏览器下载的并发数。 一个浏览器,对同一个域名只能同时下载5、6个组件;现在域名分开了,浏览器可以同时下载5、6个图片和5、6个js, 并发能力迅速翻倍
2.
不需要cookie的组件采用独立域名,避免不必要的cookie发送。你可以让动态内容发送的cookie只使用glasswall.org域,浏览器在请求*.static-glasswall.org时就不会发送cookie;这样可以减少http header的大小
3.
使用不同的硬软件服务器,以适应不同应用的特征;经过恰当的组合,可以获得最理想的总体请求时间或总体成本控制。 比如bbs服务器需要比较好的cpu/内存,而static服务器则需要比较好的带宽和磁盘,以及配置了非阻塞I/O的apache httpd和反向代理缓存。一台cpu强的机器 + 一台磁盘好的机器, 总价格小于两台 cpu/磁盘都强的机器
不同类型的内容,使用不同的优化方案
1.
图片
a.一个页面图片多而小,则可以使用长连接,避免频繁打开建立连接
b.图片内容一般不怎么变,所以Expires可以设得很大,以充分利用浏览器缓存
2.
css/js: 变化频率比较小,所以Expires可以设得很大; 当真的发生变化时,可以给css的url加上新的版本号或时间戳,使浏览器原来缓存的内容失效
3.
大文件下载
a.服务器要接入高速宽带
b.磁盘有较好的并行能力
c.web服务器可以打开linux sendfile选项