作为云产品开发,玩好云产品、理解云产品的底层逻辑,也是重要功课之一。 本系列对 AWS CloudFront 产品做一下基础配置体验与使用分析。
这里摘录一段官网的说明。CloudFront 是一项网络服务,它可以加快向用户分发静态和动态网页内容的速度,例如 html、css、js、image 文件。它通过一个遍布全球的数据中心网络(称为边缘节点)来传递您的内容。
当用户请求您通过 CloudFront 提供的内容时,请求会被路由到提供最低延迟(时间延迟)的边缘节点,以便以最佳性能交付内容。
CloudFront 直译过来是 “云前端”,它是一个 CDN 产品。
原理 关于 CDN 原理,下述有一张比较形象的图用于解释(外部引用)
从上述流程图可知:
解决的问题 概要的说,CDN 服务是为了降低服务提供方成本(资源成本、运营成本),提高用户体验。 因为其能通过大量就近接入节点,提供快速请求响应和资源缓存,并提供访问控制、边缘计算、安全等增值能力。
费用案例:
以 100G 流量为例月消费,优惠后大约为 96.89 人民币,这通常比带宽费用要实惠,且比非 CDN 方案投入去运营服务器和带宽人工、技术成本要低,只需做一些配置接入即可。
创建分配
源站配置
缓存配置
函数、WAF、备用域名等(都按默认不配置)
配置完毕后,分配了一个域名 d37z7ecg72nt7t.cloudfront.net(本篇直接使用该域名,后续篇章再配置自定义域名)
登录源站 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 配置
再请求,通啦!
重复上述抓包动作,再看一下相关头部信息
好了,上述就是本次开篇的内容,并涉猎了 tcpdump 服务端抓包与 wireshark 重组分析。
CDN 是现代互联网基础设施的重要组成部分,尤其对于需要全球分发内容的大型网站和服务来说,CDN 是提高性能和用户满意度的关键技术。
在本章中,我们已经探讨了 CloudFront CDN 基本概念、工作原理和基础配置。 在接后续章节中,我们将更深入了解 CloudFront 每个配置项的用法和抓包分析,进一步探讨如何针对不同的业务需求进行优化,并通过测试案例展示。