例如 美国用户访问时回源到 美国的源站。
伪代码表示我想实现的意图:
Browser: Access CDN domain (cdn.com) CDN: if user IP is US: Serve from us.com origin else if user IP is Europe: Serve from eu.com origin else if user IP is China: Serve from cn.com origin else: Default action (not specified)
![]() | 1 yuzo555 2024-07-18 01:03:56 +08:00 首先 CDN 节点要够广,确保用户附近有节点; 然后就是设置域名源站,域名源站的 DNS 根据位置解析不同的 IP 源站。 |
![]() | 2 herozzm 2024-07-18 01:11:50 +08:00 这不就是 cdn 的原理嘛 |
![]() | 3 ZeekChatCom 2024-07-18 07:14:58 +08:00 via iPhone @herozzm 并不是。一般而言,CDN 是要求访问节点靠近用户,而不是源站。 |
![]() | 4 yushiro 2024-07-18 09:11:36 +08:00 via iPhone ![]() 这跟 cdn 有啥关系?你内容都不放 cdn 节点,要求用户访问源站,那应该在 dns 上做文章啊。 类似国内可以配置电信,联通,移动不同线路不同的 ip |
5 lp7631010 2024-07-18 09:13:39 +08:00 想自建 cdn ? |
![]() | 6 duanxianze 2024-07-18 09:13:41 +08:00 只能从 dns 解析下手,和 cdn 目的不同,原理相同 |
![]() | 7 ersic 2024-07-18 09:20:25 +08:00 ![]() |
8 Dragonish3600 2024-07-18 09:29:23 +08:00 via iPhone 这不就 smartdns |
![]() | 9 Sayuri 2024-07-18 09:50:37 +08:00 阿里云企业版 DNS 可以解决这个问题。 |
10 leonshaw 2024-07-18 09:53:00 +08:00 源站内容不一样? |
![]() | 11 xzysaber 2024-07-18 10:03:09 +08:00 这个目的是啥?为了省流? 只对特定区域使用 CDN 。 |
![]() | 12 yuzo555 2024-07-18 10:10:48 +08:00 ![]() |
![]() | 13 IvanLi127 2024-07-18 10:15:21 +08:00 如果需求是要回源,这种不就是边缘计算吗?直接把源放在离用户最近的节点。要全部自建的话就按 CDN 的方案做,不然就按云服务商的方案做边缘计算。 |
14 DoNotSpeek 2024-07-18 10:31:33 +08:00 这需求跟 cdn 、回源没啥关系吧 入口网址里加个 IP 地址库,根据 IP 地址重定向到相应的域名就是了。 |
![]() | 15 dzdh 2024-07-18 10:34:04 +08:00 @yuzo555 #12 分情况的吧?前提是用户[已经]到达哪个节点吧? 如果美国的用户,已经到达了中国的节点,你再重新回到美国源站拉数据?不应该是从 CDN 节点就近的中国节点拉数据才更快吗? 除非源站内容不一样或者 GDPR 要求。 |
![]() | 16 dzdh 2024-07-18 10:35:27 +08:00 重新看了题目看懂了。 那这就不就是 dns 解析上下手的问题 0.0 |
![]() | 17 wy315700 2024-07-18 10:44:04 +08:00 |
![]() | 19 main1234 2024-07-18 11:13:46 +08:00 在 cdn 上面写个 lambda ,在 lambda 里面写你要的逻辑 |
21 leonshaw 2024-07-18 11:31:45 +08:00 源站内容都一样,约等于你自己就是 CDN ,然后外面再套一层。就按上面说的 Geo DNS ,用户就近接入 CDN 节点,节点就近回源。 |
23 ccde8259 2024-07-18 12:38:26 +08:00 这种情况应该用 Anycast |
24 qingzhijiusheng 2024-07-18 13:23:29 +08:00 dns 不同地域解析,举例子,国内和国外,国内走国内源,国外走 cf 。 然后你在分别加上 cdn 就行 |
25 hefish 2024-07-18 13:38:30 +08:00 可以用多个 cdn ,for us 一个,for eu 一个,for cn 一个。。。 然后用 dns 分流。 |
![]() | 26 ipwx 2024-07-18 13:49:00 +08:00 这不会是该死的野生面试题吧。。 问题怪怪的。 |
![]() | 27 Diego01 2024-07-18 14:06:32 +08:00 CDN ,条件源站加规则就可以吧 |
![]() | 28 qsnow6 2024-07-18 14:37:34 +08:00 如果是静态内容的话,用预热接口把更新的内容推到 CDN 的节点上就行了,就不需要回源了。 |
29 QlanQ 2024-07-18 15:16:46 +08:00 需求是啥?这样做的目的是啥? |
![]() | 30 liuliancao 2024-07-18 15:39:43 +08:00 地域 dns 每个指向 CNAME 各自的 cdn 域名 可以不 |
![]() | 31 BeijingBaby 2024-07-18 16:27:55 +08:00 |
![]() | 32 BeijingBaby 2024-07-18 16:29:03 +08:00 |
![]() | 33 azhangbing 2024-07-18 16:52:41 +08:00 从 DNS 入手 HTTPDNS 移动解析可以定义规则好像 |
34 ThirdFlame 2024-07-18 17:30:49 +08:00 比如阿里的 dcdn 支持回源写域名的。 那么上智能解析,就会让 dcdn 服务器回源时就根据解析结果回源到不同的服务器的 |