NitroPack的四大缓存优化策略

NitroPack是一款基于云端的多合一网站性能优化插件,支持WordPress、Magento等主流建站平台。本文详解其智能缓存失效、自动缓存预热、设备与Cookie感知缓存、第三方缓存集成四大策略,帮助独立站卖家提升页面加载速度与用户体验。

NitroPack缓存优化独立站
自建站

NitroPack可以同时匹配WordPress、OpenCart、WooCommerce和Magento等网站使用,解决了多端口不能完美匹配的问题。它最大的特点是基于云端的性能优化,通过多合一的问题解决模式,对网站的页面加载速度进行提升。

缓存优化策略

NitroPack优化

NitroPack具有先进的缓存机制,NitroPack官方给出了4种解决策略。

(1)Smart cache invalidation(智能缓存失效)。缓存失效指的是网站页面内容被缓存后一直保存在缓存数据中,直到该缓存数据过期或者被人为更新或清理。一般情况下,我们会采用HTTP标头来控制缓存数据的过期时间,有点类似于WP-Rocket和WP Super Cache中的发布新内容自动缓存功能。

(2)Automatic cache warmup(自动缓存预热)。NitroPack的缓存预热功能可以在页面清除或者页面失效后为页面安排新的优化,还可以为任何已经清理内容的页面安排新的优化。

还是以饭店做菜为例,正常情况下,如果食客想吃某道菜,那么厨师会从头开始现做。当食客太多厨师忙不过来的时候,会用微波炉加热事先已经做好的半成品以提高上菜速度。但半成品总是有保质期的,头一天的半成品没有全部被食客点完就会造成菜品过期,所以综合各方面因素考虑,厨师就需要将临期的半成菜品倒掉,然后制作新的一批半成品,以便在第二天食客量大的时候快速出菜。这个重新制作的过程就可以理解成网站页面内容的自动缓存预热。

因为网页内容也存在过期时间节点,所以很多WordPress的缓存优化插件配备了自动定期删除缓存功能,但不一定每个插件都具备或者设置了缓存预热功能。一方面是因为每个网站页面并不一定具有相同的内容过期头设置,另一方面是因为大型网站成千上万个网页统一生成新一批内容缓存,所耗费的资源较大。所以WP-Rocket等速度优化插件会提供手动预缓存加载功能。当然,我们也可以用爬虫的方式对网站中的每个内容进行爬取,从而让缓存优化插件根据爬虫的内容加载请求自动生成当前新的页面内容缓存,而NitroPack插件直接以自动补全的形式解决了手动或者爬虫在对内容更新或定期缓存清除后的预生成问题。

(3)Device and cookie-aware caching(设备和Cookie感知缓存)。简单地说,设备和Cookie感知缓存就是更加有针对性的内存缓存服务。

当某个用户使用设备第一次访问我们的网站时,其浏览器发送的是简单的HTTP报文。当该报文到达我们网站的服务器之后,服务器会生成一个识别码(该识别码是唯一的、不可重复的),并将其与用户的一些相关信息建立对应关系,然后存储在我们网站服务器的数据库中。服务器将该用户请求加载的页面内容联合服务器的主机名与之前生成的唯一识别码返回到该用户的浏览器,这样就完成了第一次的内容请求与交付。

当该用户第二次试图访问我们网站页面内容的时候,其浏览器就会从自己的Cookie文件夹中获取之前访问我们网站页面时得到的那个识别码,并放在HTTP请求报文中。我们的网站服务器收到该HTTP报文之后,发现了该识别码并且与自己服务器数据库中创建的识别码配对,这个过程就叫作Cookie感知,而整体的这种感知行为我们可以称之为Web缓存。Web缓存可以大大减少用户对内容请求的响应时间,提高网站页面的打开速度,提升用户的页面体验。

(4)Integrate with 3rd-party cache(与第三方缓存集成)。NitroPack能够轻松地兼容第三方的缓存插件,如Varnish、NGINX Cache、Cloudflare、Sucuri和Cloudways Cache。老版本的NitroPack一直存在不能和第三方缓存插件兼容的情况,如WP-Rocket。2022年的新版本NitroPack在兼容性方面做了很大的拓展和提升,将市面上主流的第三方缓存插件工作机制与自身的速度优化内核做了调整。

NitroPack在网页加载速度优化的其他方面也有出色的表现。

(本文内容根据网络资料整理,出于传递更多信息之目的,读者需判断其时效性,不代表连连赞同其观点和立场)

更多