SEO 百科
边缘渲染
本页目录
边缘渲染
边缘渲染(edge rendering)是把渲染放到内容分发网络的边缘节点上执行,由离访客最近的节点生成 HTML 的做法[1]。它和普通服务端渲染的差别在渲染位置,一个在源站或机房,一个在分布各地的节点上。选它之前要看清两件事,节点上能跑什么代码,以及这些节点对爬虫是不是可见。
渲染位置与请求路径
边缘指离访客最近的那些服务器。Cloudflare 对边缘计算的说明是,把计算放到靠近数据来源的位置,减少客户端与服务器之间的长距离通信[2]。
请求不再一路回到源站。Nuxt 的文档说明,请求先被最近的边缘服务器接住,由它生成 HTML 再返回[1]。数据走过的物理距离缩短,等待时间随之下降。
渲染动作仍然需要运行时。Nuxt 把边缘渲染称为一种部署目标,由 Nitro 把它打包到 Cloudflare Workers 这类平台上[1]。
对抓取与首屏的作用
爬虫也是访客,同样落在最近的节点上。页面在节点上生成,爬虫拿到的响应里就有正文,不必等回到源站。
首字节时间直接受益。数据传输距离变短,服务器开始响应的时间提前[1]。
节点对爬虫必须是可见的。Google 说明抓取基础架构会按 IP 归属识别 CDN,由 CDN 支持的站点可以获得更高的抓取率[3]。
反过来,如果把爬虫单独引回源站,这条判断就失效,边缘带来的好处也拿不到。
爬虫侧的结果可以核对。百度提供抓取诊断,展示 Baiduspider 取得的内容,页面源码与预期不一致时,就能判断问题出在节点还是别处[4]。
成本与维护代价
带宽和源站压力都会下降。节点就近生成并返回,源站不再为每个请求承担全部运算[2]。
运行环境有限制。节点上的运行时通常比完整服务器小,可用的接口和依赖库更少,部分 Node.js 模块不能直接用[1]。
回源仍然会发生。节点上没有缓存、或者数据必须取最新值时,请求还是要回到源站,距离带来的好处被抵消一部分[2]。
调试和观测也更难。问题可能只出现在某一个地区的节点上,本地复现不了。
适合的站点类型
访客分布广的站点收益最大。跨地区、跨国的站点,节点就近响应的差别最明显[2]。
内容需要按访客差异化的页面也适合。按地区显示不同的语言、货币或推荐内容时,在节点上生成比回源更快。
访客集中在一个地区时收益有限。此时选一个离访客近的机房,效果和边缘节点差不多,维护却更简单。
常见误用
- 只在本地测速就上线,没有验证各地区的节点表现。
- 把爬虫单独路由回源站,边缘带来的响应优势对抓取不起作用。
- 在节点上跑重依赖的代码,运行时支持不了。
- 缓存设置过粗,节点上长期返回旧页面。
附录
参见
参考资料
官方(境外)
- 《Rendering Modes》,Nuxt。
- 《What is edge computing?》,Cloudflare Learning Center。
- 《抓取 12 月:CDN 和抓取》,Google 搜索中心博客,2024-12-24。
官方(国内)
- 《平台工具使用手册(抓取诊断)》,百度搜索资源平台,2020-08-14 更新。
外部链接
无。