看这篇就够了如何让你的站点达到秒出

最近我们要优化站点速度,目前是分为国内站点和海外站点,之前也折腾过不少这样的事情,现在来总结下,希望这样的实战型文章可以帮助大家!

首先我们要把用户的请求链路搞清楚,用户先从浏览器输入网址回车,整个请求流程是这样的:

一、DNS解析

1.1、用户本机电脑会先从自己电脑的hosts文件检查,看看有没有这样的域名解析配置,有则直接返回;1.2、本机没有则到运营商的dns中去找,有则返回;1.、运营商还没有则到dns的根服务器去找;1.4、本地进行dns缓存,后面的请求不会每次都去查dns;

比如我们使用阿里云的dns,这个是企业级别的dns是需要同步到dns根服务器的,也就是可以看到当我们配置完成后10分钟生效,这个过程就是做这样的事情。生效后如果后面有更改,我们用拨测工具测试,会发现有些地区还是走老的dns链路,这就是地区运营商那边存在缓存。

二、本地缓存

如果网站配置了cache-control,如:

浏览器会进行本地缓存,本地缓存的策略很多,这里不一一介绍,这边先介绍一个默认的public,支持代理缓存,可以理解为支持CDN缓存。浏览器访问的时候会判断本地是否存在缓存,存在则直接从本地返回。如:

第一次当然是不会存在的,所以就会走网络请求。

三、CDN缓存

CDN的概念是内容分发网络,CDN厂商在全国各个地区都部署了很多节点服务器,当我们站点部署了cdn后,比如支持预热功能,点击预热会把文件发到各个节点上去。如果没有预热,第一次请求也是会经过cdn节点,节点回源拿到数据后会缓存起来,提供下次该地区的访问。

大概是这样。第一次请求:本地请求-CDN节点-我们的服务器-返回CDN节点,缓存页面-本地收到数据;第二次请求:本地请求-CDN节点-本地收到数据;就像取快递,物流仓库已经部署到你们家门口了,你要取快递就非常快了,否则你得先坐汽车去高铁站,再坐高铁到北京,拿回来还得原路返回。问题是,公网是相对不稳定且相对的很慢的!所以,CDN是解决问题的根本办法!但是站点部署CDN也是有些坑的,还需要注意,每个技术使用前最好先理解到位,避免中间遇到问题HOLD不住。

四、服务器优化

估计很多人搜索会看到性能优化都是各种前后端分离,PHP缓存,或者其他什么缓存。这里也梳理一下!

1、前后端分离。首先有条件的最好是前后端分离,让专业前端把前端的静态html、js、css都独立。最好是把js、css、图片等做独立域名,如cdn.a.


转载请注明:http://www.aierlanlan.com/cyrz/9344.html