← 返回文档中心

网站技术架构全景图

从用户点击到页面呈现,每一层在做什么,为什么需要它

1. 全景架构:一个现代网站长什么样

从左到右:用户 → 网络层 → 应用层 → 数据层

🧑 用户浏览器
DNS 解析
CDN 边缘节点
Next.js 服务器
↑ 用户侧                                               服务侧 ↑
Headless CMS
品牌内容
Shopify
商品 · 订单
Analytics
数据追踪
Auth
用户认证
↑ 后端服务层(全部通过 API 连接,没有直接数据库访问)
关键认知
现代网站不是"一个系统",而是一组服务通过 API 粘合。每个服务只做一件事,Next.js 是中间的"胶水层",把它们组装成用户看到的页面。

2. 一次访问的完整生命周期

用户打开 tp-link.com/us/products/deco-x50,背后发生了什么

场景 A:静态页面(SSG)
场景 B:增量更新(ISR)
场景 C:实时渲染(SSR)
场景 D:客户端渲染(CSR)

SSG — 静态站点生成

最快 · 产品展示页推荐
用户输入 URL,浏览器发起请求
DNS 把 tp-link.com 解析为 CDN 的 IP 地址
CDN 边缘节点命中缓存,直接返回 HTML
页面在部署时就已经生成好了,CDN 上有现成的文件。用户在纽约就从纽约节点拿,在东京就从东京节点拿。延迟 < 50ms。
浏览器渲染页面
HTML 已包含完整内容(SEO 友好)。CSS 渲染样式。JS 加载后页面变为可交互(hydration)。
特点
Next.js 服务器完全不参与。CDN 直接返回预生成的 HTML,和访问一张图片一样快。
适用:产品介绍页、品牌内容页、帮助文档 —— 内容不频繁变化的页面。
🔄

ISR — 增量静态再生

快 + 可更新 · 产品详情页推荐
用户访问页面
和 SSG 一样,CDN 返回已有的静态 HTML,速度极快。
CDN 检查页面是否过期
你设了"60 秒后过期"。如果这个页面最后一次生成是 30 秒前 → 直接返回。如果超过 60 秒 → 返回旧版本,同时在后台触发重新生成
Next.js 后台重新生成页面
调 Shopify API 拿最新价格,调 CMS API 拿最新内容 → 生成新 HTML → 替换 CDN 上的旧版本。
下一个用户拿到最新版
当前用户看到的是旧版(最多过期 60 秒),下一个用户看到的就是新版。
特点
兼顾速度和新鲜度。用户永远秒开(拿 CDN 缓存),但内容不会永远是构建时的版本。
适用:产品详情页(价格可能变)、品类列表页 —— 需要更新但不要求秒级实时的页面。

还可以通过 On-Demand Revalidation:CMS 编辑发布内容 → Webhook 通知 Next.js → 立即重新生成,不用等过期。
🖥️

SSR — 服务端渲染

实时 · 个性化页面
用户访问页面
请求到达 CDN,CDN 发现没有缓存(或被标记为不缓存),转发给 Next.js 服务器。
Next.js 服务器现场生成 HTML
读取用户 Cookie/Session → 调 API 获取个性化数据 → 实时拼装页面 → 返回。
用户收到页面
比 SSG/ISR 慢(多了服务器处理时间),但内容是实时、个性化的。
特点
每次请求都要服务器处理,和 WordPress 类似,但用的是 Node.js 而非 PHP。
适用:用户账户页、购物车页、搜索结果页 —— 每个用户看到的内容不同的页面。

注意:流量大时服务器压力大,需要足够的计算资源。
📱

CSR — 客户端渲染

交互丰富区域
页面框架已经加载(通过 SSG/ISR/SSR)
页面主体内容已经展示给用户了。
浏览器里的 JS 接管,动态加载额外内容
比如:用户点"加入购物车" → JS 调 Shopify API → 弹出购物车浮层。
或者:用户滚动到评价区 → JS 调评价 API → 动态渲染评论列表。
特点
不是整个页面用 CSR,而是页面内的局部交互区域
适用:购物车浮层、产品对比工具、实时库存状态、用户评论加载 —— 需要即时交互但不影响 SEO 的部分。
核心理解
Next.js 的强大之处:同一个网站里不同页面可以用不同策略,不是非此即彼。

页面策略原因
首页ISR(60s)需要展示最新促销,但不需要秒级实时
产品介绍页SSG营销内容不频繁变,追求最快速度
产品详情页ISR(30s)价格库存需要更新
搜索结果CSR完全由用户输入决定,无法预生成
购物车CSR每个用户不同
结账页SSR需要实时验证库存和价格
用户账户SSR个人信息,需认证

3. 构建时 vs 运行时:两个完全不同的世界

理解这个区分是理解现代网站架构的关键

🏗️

构建时(Build Time)

部署前 · 开发者世界

什么时候发生:代码推送后,CI/CD 触发构建

Next.js 构建启动
读取所有页面组件和路由配置
调用外部 API
从 CMS 拉品牌内容,从 Shopify 拉商品数据
生成静态 HTML
每个产品页生成一个 HTML 文件 + JS bundle
部署到 CDN
静态文件分发到全球边缘节点
参与者
CI/CD 系统(GitHub Actions / Vercel)、CMS API、Shopify API
用户不在场。
🌍

运行时(Runtime)

用户访问时 · 真实世界

什么时候发生:用户打开浏览器访问网站

静态页面
CDN 直接返回构建好的 HTML,不需要服务器
SSR 页面
请求到达 Next.js 服务器,现场调 API、生成 HTML
客户端交互
用户点击"加购物车",浏览器里的 JS 直接调 Shopify API
ISR 再生
过期页面在后台悄悄重新生成,用户无感知
参与者
CDN、Next.js 服务器(仅 SSR/ISR)、浏览器 JS
CMS 通常不直接参与(除非 ISR 再生或 SSR)。

4. 数据从哪来,到哪去

每种数据有自己的家,Next.js 只是搬运工

数据类型 存在哪里 谁写入 谁读取 更新频率
品牌内容
Banner、活动页、品牌故事
Headless CMS 内容运营团队 Next.js(构建时/ISR) 每周数次
产品营销素材
卖点图文、规格、对比
Headless CMS 产品营销团队 Next.js(构建时/ISR) 产品发布时
商品数据
SKU、价格、库存、变体
Shopify 电商运营团队 Next.js(ISR + 客户端) 每天/实时
购物车 / 订单
加购、结账、支付
Shopify 用户操作 浏览器 JS → Shopify API 实时
用户账户
登录、订单历史、地址
Shopify 用户 Next.js(SSR,需认证) 实时
搜索索引
产品搜索、筛选
Algolia Shopify → 自动同步 浏览器 JS → Algolia API 准实时
用户行为
浏览、点击、转化
GA / Segment 浏览器 JS 自动采集 数据分析团队 实时
PM 视角
当有人问"这个数据放哪里"的时候,判断标准很简单:
要卖的(价格、库存、SKU) → Shopify
要讲的(品牌故事、卖点、活动) → CMS
要找的(搜索、筛选) → 搜索引擎
要看的(用户行为数据) → Analytics

5. 部署架构:代码怎么到用户面前

从工程师写代码到全球用户访问

开发 → 构建 → 部署
工程师本地开发
Git Push
CI/CD
自动测试 + 构建
部署到 Vercel
静态文件 → CDN
全球用户访问
🇺🇸 美国用户
🇺🇸 美东 CDN 节点
弗吉尼亚
🇬🇧 英国用户
🇬🇧 欧洲 CDN 节点
伦敦
🇯🇵 日本用户
🇯🇵 亚洲 CDN 节点
东京
🌐

CDN 是什么

Content Delivery Network,内容分发网络。

把你的网站文件复制到全球几百个节点。用户访问时,从最近的节点返回。

类比:你的网站在全球每个城市都有一个分店,用户不需要飞到总部取货。

主流选择:Vercel Edge Network、Cloudflare、AWS CloudFront(你们现在用的)

🔀

环境分层

本地开发 工程师电脑上,改了代码秒看效果
预览环境 每个 PR 自动生成一个临时网址,PM 和设计师可以直接看效果、提反馈
Staging 和生产环境一样的配置,上线前最后验证
生产环境 tp-link.com/us,真实用户访问
对你最有用的
预览环境。工程师提交代码后,你能拿到一个 URL 直接看效果,不用等部署、不用搭环境。Vercel 原生支持这个能力。

6. 开发到上线:完整流水线

一个新功能从构思到用户面前的全过程

需求定义(PM)
PRD、交互稿、设计稿。明确数据来源和页面策略(SSG/ISR/SSR)。
设计(Designer)
Figma 出设计稿。定义组件库、设计系统(颜色、字体、间距规范)。工程师同步评审可行性。
开发(Engineer)
Git 创建功能分支 → 写 React 组件 + 样式 + API 对接 → 本地预览调试 → 提交代码
每次提交自动触发:代码检查(ESLint)→ 类型检查(TypeScript)→ 自动测试 → 生成预览 URL
Code Review(团队)
其他工程师审查代码质量、安全性。PM 在预览 URL 上验收功能和体验。
合并到主分支(Merge)
审查通过 → 合并代码 → CI/CD 自动构建 → 自动测试 → 自动部署到 Staging
上线(Deploy to Production)
Staging 验证通过 → 一键发布到生产环境 → CDN 全球同步 → 用户看到新功能
CI/CD 是什么
Continuous Integration / Continuous Deployment(持续集成 / 持续部署)。
简单说:工程师提交代码后,后面的事情全自动——测试、构建、部署,不需要人手动操作。
主流工具:GitHub Actions、Vercel(内置)、GitLab CI

7. 技术选型地图

每一层的职责、主流选择、和 TP-Link 推荐

层级 职责 主流选择 TP-Link 推荐
前端框架 页面渲染、路由、状态管理 Next.js / Nuxt / Remix / Gatsby Next.js
UI 组件库 按钮、弹窗、表单等基础组件 shadcn/ui / Radix / Ant Design shadcn/ui(高度可定制)
CSS 方案 页面样式 Tailwind / CSS Modules / styled-components Tailwind CSS
Headless CMS 品牌内容管理 Contentful / Sanity / Strapi / Hygraph Contentful 或 Sanity
电商后端 商品、库存、购物车、结账 Shopify / BigCommerce / Medusa Shopify Plus(Headless)
搜索 站内搜索、筛选、自动补全 Algolia / Typesense / MeiliSearch Algolia
部署平台 构建、CDN、Serverless Vercel / Netlify / AWS Amplify Vercel(Next.js 亲儿子)
域名 / DNS 域名管理、SSL Cloudflare / Route53 / Vercel DNS Cloudflare(兼做 DDoS 防护)
监控 错误追踪、性能监控 Sentry / Datadog / Vercel Analytics Sentry + Vercel Analytics
Analytics 用户行为追踪 GA4 / Segment / Mixpanel GA4 + Segment
选型原则
1. 能用 SaaS 就不自建 — CMS、搜索、监控、支付全用现成服务,你只写前端
2. API-first — 每个服务通过 API 通信,不和任何一家绑死
3. 可替换 — 不满意 Contentful 可以换 Sanity,不满意 Algolia 可以换 Typesense,前端代码改动最小

8. 安全与监控:上线后的事

网站不是发布了就完事,需要持续运营和保护

🛡️

安全层

HTTPS 所有通信加密,无例外。Vercel/Cloudflare 自动管理证书。
DDoS 防护 Cloudflare 自动拦截恶意流量,不需要你做任何事。
WAF Web Application Firewall,过滤 SQL 注入、XSS 等攻击。
CSP Content Security Policy,控制页面能加载哪些外部资源,防止恶意脚本注入。
认证 用户登录走 Shopify 或第三方(Auth0),不自己存密码。
密钥管理 API 密钥存在环境变量里,不进代码仓库。
📊

监控层

错误追踪
Sentry
页面报错时自动收集错误信息、用户环境、调用栈,通知工程师。
性能监控
Vercel Analytics
追踪 Core Web Vitals(LCP、FID、CLS),确保用户体验达标。
可用性监控
Uptime Robot / Checkly
每分钟检测网站是否可访问,宕机立即告警。
业务监控
GA4 + Shopify Analytics
转化率、跳出率、购物车弃单率 —— PM 最关心的指标。

9. TP-Link 架构蓝图

把前面所有内容落到你的项目上

tp-link.com/us 目标架构
用户接入层
浏览器
Cloudflare
DNS + DDoS + WAF
Vercel Edge
CDN + 边缘计算
应用层 — Next.js
SSG 页面
品牌内容 · 帮助中心
ISR 页面
产品详情 · 品类列表
SSR 页面
账户 · 结账
API Routes
Webhook · 代理
后端服务层 — 全部 SaaS,API 连接
Contentful
品牌内容 · 营销素材
Shopify Plus
商品 · 订单 · 支付
GA4 + Segment
用户行为追踪
Sentry
错误监控
这个架构意味着什么
你不需要运维服务器。没有数据库要维护,没有服务器要扩容。
• Vercel 管部署和 CDN
• Cloudflare 管安全
• Shopify 管电商
• Contentful 管内容
• 你的团队只写前端代码,其余全部外包给 SaaS

这叫 Jamstack 架构(JavaScript + API + Markup)—— 2024-2026 年最主流的网站架构范式。
成本结构
全 SaaS 意味着运营成本按用量走,而非固定的服务器费用:
• Vercel Pro: ~$20/月/人 + 用量
• Shopify Plus: ~$2,000/月起
• Contentful: $300-$800/月
• Algolia: $0-$1,000/月(按搜索量)
• Cloudflare Pro: $20/月
• Sentry: $26/月起

对比自建:不需要 DevOps 工程师(节省 $15-25 万/年),不需要管理服务器。