加速你的站点访问

JerryXia 发表于 , 阅读 (0)
2016 年 07 月 15 日
devops

对于一个站点,大家应该都比较清楚,资源大概就分为静态资源(js/css等)图片文件动态数据等。对于加快动态数据访问,通常是需要后端程序数据结构作优化,才能比较明显地得到提升,并不是一个立竿见影的过程。但对于静态资源(js/css等)图片文件等的访问,则可以通过一些缓存压缩合并等技术,就能得到比较明显的提升,本文将探讨下使用缓存来加快静态资源图片等的访问,主要使用Varnish

动静态资源分离

通常,对于具有一定规模的站点,是需要将动态资源(如后端服务提供的API数据接口)和静态资源(如图片文件js/css等)独立部署的,因为这些资源具有不同的访问属性,在运维层面也会有不同的策略,比如服务器配置缓存策略等,下面是一个比较简易的部署架构:

static-cache-arch.png

对静态资源进行缓存

将动静态资源分离访问后,由于静态资源通常不会有内容更新,所以对它们进行缓存处理是再好不过,这也减少了不必要的资源解析,加载等,对于静态资源的缓存,也有许多比较成熟的解决方案,如SquidApache Traffic ServerVarnishNginx等,这里讲主要介绍ATSVarnishNginx作资源缓存处理。ATSNginx基于文件缓存,而Varnish则基于内存缓存(收费的Varnish Plus应该支持文件)。

使用ATS,Nginx,Varnish作缓存处理

各缓存方案的特性对比

各缓存方案的一些特性对比: