对 cdn 工作原理的一点疑惑

2020-06-04 20:52:50 +08:00
 kuanng

图中的第( 9 )步骤,我的问题是 cdn 节点是怎样知道我想访问的原站点?

难道是根据 http 中的 host 字段值吗?

如果是这样,那么 cdn 就只能用作 http 的加速了吧?

3369 次点击
所在节点    CDN
15 条回复
imdong
2020-06-04 21:02:35 +08:00
https 需要提供你的证书,然后一切和 http 一样。
Xusually
2020-06-04 21:02:50 +08:00
你要访问的站点,在它所使用的 cdn 平台后台有配置源站的信息,比如回源的 ip 或者域名,回源的方式( ip/host ),http 或者 https 回源,缓存策略等。

你找个 cdn 服务的后台看一下就知道了。
jugelizi
2020-06-04 21:06:16 +08:00
cdn 是需要你去服务商手动开启配置的
随便找家免费的进控制台操作一下就清楚了
imdong
2020-06-04 21:08:16 +08:00
假设 www.aaa.com 是客户访问域名,
www.aaa.com 被 cname 到 www.aaa.com.cdnhost.com
然后 源站是 www-cdn.aaa.com -> 192.168.1.55
并假设 CDN 上使用 Nginx 来处理的。

那么思路大概就是
imdong
2020-06-04 21:09:46 +08:00
那么思路简单概括就是:

Nginx

proxy_pass http://$host$req_uri;
kuanng
2020-06-04 21:14:32 +08:00
@imdong 所以,确实是通过 host 来得知原站点的咯?
rrfeng
2020-06-04 21:21:49 +08:00
你知道 Nginx 怎么配置吗?

就是你把你的 Nginx 部署到离用户近的地方。
imdong
2020-06-04 21:28:03 +08:00
@kuanng 是的
kuanng
2020-06-04 21:31:33 +08:00
@imdong 那 cdn 只能加速 http(s)吗?
koast
2020-06-04 22:22:36 +08:00
@kuanng #9 额,不是,比如 websocket,cdn 就是扮演一个中间传话的角色
ArtIsPatrick
2020-06-04 22:35:37 +08:00
@koast websocket ? cdn 是用来加速类似前端样式和图片这些静态资源用的。需要一直变化的东西都不能缓存怎么加速?
imdong
2020-06-04 22:44:10 +08:00
@ArtIsPatrick 所以有回源的概念,能缓存的缓存,没有的回源(服务器)获取,然后(根据头信息与后台设置等)考虑是否缓存。

对于动态页面,不缓存的,直接每次都从服务器读取。

原则上,应该只对静态文件缓存(需要单独域),动态页面则直接解析到服务器上,但实际上很多人使用 CDN 也是为了隐藏、保护服务器免受(部分)攻击。

对于不能缓存每次都要回源的数据,确实有可能起到了减速的作用(多了一道传话人)。

但是,考虑到 CDN 边缘服务器的网络优化可能比部分用户的网络优化更好。

你 -> CDN -> 源站 在某些情况下可能比 你 -> 源站 的速度更快(不排除这种可能)。

这里就提到了网络游戏中常见的 加速器 的基本原理,利用中间服务器对两端的网络优化都比较好的优势。
ArtIsPatrick
2020-06-05 07:25:24 +08:00
@imdong 我知道呀,然而现实是回源了基本上就没 cdn 本身的加速效果了,走 cdn 不一定比直接访问更快,这种情况下的加速本质上依赖的是 dns 的智能解析。虽然许多 cdn 有 dns 线路优化,但我理解这不是 cdn 的核心功能,而是 dns 的作用。
imdong
2020-06-05 10:07:12 +08:00
@ArtIsPatrick 你以为 CDN 是缓存,实际上 CDN 的重点是有非常多的服务器,无论用户在哪都能有比较近的服务器,然后还是 DNS 调控分配给用户最近最快的服务器。最后加个缓存功能就好。
ArtIsPatrick
2020-06-05 13:07:40 +08:00
@imdong 这是个概念问题。只有静态资源加速是 CDN,什么混合加速,全站加速,安全加速都不是传统意义上的 CDN,而是另一种云服务商整合出来的产品。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/678720

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX