xiaoming728

xiaoming728

CloudFront 配置与分析

AWS
9
2025-06-19
CloudFront 配置与分析

作为云产品开发,玩好云产品、理解云产品的底层逻辑,也是重要功课之一。

本系列对 Amazon CloudFront 产品做一下基础配置体验与使用分析。

太长不看

  • CloudFront 是什么

  • CDN 原理与解决的问题

  • CloudFront 基础配置流程

  • tcpdump 抓包与分析

  • 结语

01/CloudFront 是什么

这里摘录一段 Amazon CloudFront 官网说明。CloudFront 是一项网络服务,它可以加快向用户分发静态和动态网页内容的速度,例如 html、css、js、image 文件。它通过一个遍布全球的数据中心网络(称为边缘节点)来传递您的内容。

当用户请求您通过 CloudFront 提供的内容时,请求会被路由到提供最低延迟(时间延迟)的边缘节点,以便以最佳性能交付内容。

CloudFront 直译过来是 “云前端”,它是一个 CDN 产品。

02/CDN 原理与解决的问题

原理

关于 CDN 原理,下述有一张比较形象的图用于解释(外部引用)

从上述流程图可知:

  • 用户发起请求:用户向 http://www.test.com/1.jpg 请求资源。

  • DNS 解析:浏览器向 DNS 服务器发起域名解析,域名解析发现配置 CNAME 到 CDN 的调度域名,DNS 递归查询到 CDN 调度系统。

  • 调度决策:调度服务会将最佳接入节点(边缘节点)IP 返回。

  • 缓存判断:浏览器向 IP 发起请 1.jpg 访问请求,此时进入 CDN 接入节点,接入节点会检查其缓存是否有用户请求内容。

  • 缓存命中:如果内容存在于缓存中,接入节点直接将内容返回给用户。

  • 缓存未命中:如果内容不在缓存中,接入节点向源服务器发起请求,获取内容(其中可能会经过多层中间源节点,这里涉及请求收敛策略,进一步降低源站压力)。

  • 缓存并传输内容:接入节点将从源服务器获取的内容存储在缓存中,并将内容传输给用户。

  • 浏览器渲染:用户设备接收到内容,浏览器开始渲染页面。

解决的问题

概要的说,CDN 服务是为了降低服务提供方成本(资源成本、运营成本),提高用户体验。

因为其能通过大量就近接入节点,提供快速请求响应和资源缓存,并提供访问控制、边缘计算、安全等增值能力。

费用案例:

以 100G 流量为例月消费,优惠后大约为 96.89 人民币,这通常比带宽费用要实惠,且比非 CDN 方案投入去运营服务器和带宽人工、技术成本要低,只需做一些配置接入即可。

03/CloudFront 基础配置流程

创建分配

源站配置

缓存配置

函数、WAF、备用域名等(都按默认不配置)

配置完毕后,分配了一个域名 d37z7ecg72nt7t.cloudfront.net(本篇直接使用该域名,后续篇章再配置自定义域名)

04/tcpdump 抓包与分析

登录源站 sg.lukachen.work 所在服务器,抓包并写入 test.pcap 文件(把网卡出入的包全抓了,用 wireshark 再做过滤重组。注意!抓包会消耗大量 CPU 和硬盘资源,如果在现网服务器,需在负载低峰或经过较为合理的过滤参数与评估决策后执行)

tcpdump -i eth0 -w test.pcap

本地浏览器访问资源(也可以用 curl),发现响应 404,翻车了。。。排查原因

curl https://d37z7ecg72nt7t.cloudfront.net/1.txt

登录服务器,终止抓包,并将抓包文件发送到本地 wireshark 分析

sz test.pcap -y

wireshark 包定位,1.txt 关键字过滤并使用 Follow TCP Stream 进行 TCP 包重组

重组后可看到,请求头,通过分析根因是请求头中的 Host,我服务器并没有配

去配置上,重载 nginx 配置

再请求,通啦!

重复上述抓包动作,再看一下相关头部信息

05/结语

好了,上述就是本次开篇的内容,并涉猎了 tcpdump 服务端抓包与 wireshark 重组分析。

CDN 是现代互联网基础设施的重要组成部分,尤其对于需要全球分发内容的大型网站和服务来说,CDN 是提高性能和用户满意度的关键技术。

在本章中,我们已经探讨了 CloudFront 基本概念、工作原理和基础配置。

在接后续章节中,我们将更深入了解 CloudFront 每个配置项的用法和抓包分析,进一步探讨如何针对不同的业务需求进行优化,并通过测试案例展示。

PS

加速原理图引用 https://cloud.tencent.com/document/product/228/2939

https://blog.csdn.net/weixin_48332026/article/details/143205598

作者:LukaChen

本文链接:CloudFront 配置与分析:开篇 - LukaChen Blog