加速你的站点访问
2016 年 07 月 15 日
devops
对于一个站点,大家应该都比较清楚,资源大概就分为静态资源(js/css等),图片,文件,动态数据等。对于加快动态数据访问,通常是需要后端程序或数据结构作优化,才能比较明显地得到提升,并不是一个立竿见影的过程。但对于静态资源(js/css等),图片,文件等的访问,则可以通过一些缓存,压缩,合并等技术,就能得到比较明显的提升,本文将探讨下使用缓存来加快静态资源,图片等的访问,主要使用Varnish。
动静态资源分离
通常,对于具有一定规模的站点,是需要将动态资源(如后端服务提供的API数据接口)和静态资源(如图片,文件,js/css等)独立部署的,因为这些资源具有不同的访问属性,在运维层面也会有不同的策略,比如服务器配置,缓存策略等,下面是一个比较简易的部署架构:

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