一个域名,根据用户 ip 就近回源,用哪种方案比较好?

157 天前
 isbase

例如 美国用户访问时回源到 美国的源站。

伪代码表示我想实现的意图:

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)
3752 次点击
所在节点    CDN
34 条回复
yuzo555
157 天前
首先 CDN 节点要够广,确保用户附近有节点;
然后就是设置域名源站,域名源站的 DNS 根据位置解析不同的 IP 源站。
herozzm
157 天前
这不就是 cdn 的原理嘛
ZeekChatCom
157 天前
@herozzm 并不是。一般而言,CDN 是要求访问节点靠近用户,而不是源站。
yushiro
157 天前
这跟 cdn 有啥关系?你内容都不放 cdn 节点,要求用户访问源站,那应该在 dns 上做文章啊。
类似国内可以配置电信,联通,移动不同线路不同的 ip
lp7631010
157 天前
想自建 cdn ?
duanxianze
157 天前
只能从 dns 解析下手,和 cdn 目的不同,原理相同
ersic
157 天前
ladypxy
157 天前
这不就 smartdns
Sayuri
157 天前
阿里云企业版 DNS 可以解决这个问题。
leonshaw
157 天前
源站内容不一样?
xzysaber
157 天前
这个目的是啥?为了省流?
只对特定区域使用 CDN 。
yuzo555
157 天前
@yushiro @xzysaber
“回源”这个词在 CDN 领域是指 CDN 节点访问用户的源站的过程,这个词的意思是“CDN 节点去访问”,而不是“用户去访问”。
“美国用户访问时回源到 美国的源站”,意思就是美国的用户访问 CDN 时,如果 CDN 没有缓存需要访问源站获取资源,则访问美国的源站。
IvanLi127
157 天前
如果需求是要回源,这种不就是边缘计算吗?直接把源放在离用户最近的节点。要全部自建的话就按 CDN 的方案做,不然就按云服务商的方案做边缘计算。
DoNotSpeek
157 天前
这需求跟 cdn 、回源没啥关系吧
入口网址里加个 IP 地址库,根据 IP 地址重定向到相应的域名就是了。
dzdh
157 天前
@yuzo555 #12


分情况的吧?前提是用户[已经]到达哪个节点吧?

如果美国的用户,已经到达了中国的节点,你再重新回到美国源站拉数据?不应该是从 CDN 节点就近的中国节点拉数据才更快吗?

除非源站内容不一样或者 GDPR 要求。
dzdh
157 天前
重新看了题目看懂了。

那这就不就是 dns 解析上下手的问题 0.0
wy315700
157 天前
@dzdh
OP 要做的就是这种
如果美国的用户,已经到达了中国的节点,再重新回到美国源站拉数据。


一般在电商场景会比较常见,比如不同国家售卖的东西不一样,但是前端节点可以共用。

类似于 Google Global Cache 。前端 CDN 是一方面,后端根据你的账户返回不同的存储区。

@isbase

这种只能自建 CDN 节点并且加 IP 库来判断,可以用 OpenResty 来开发
dzdh
157 天前
@wy315700

op 更新了。

他要求的是 cdn 节点也得是美国哦。 那还是 dns 的问题。。。
main1234
157 天前
在 cdn 上面写个 lambda ,在 lambda 里面写你要的逻辑
wy315700
157 天前
@dzdh
那就不懂了,如果源站内容一样,为啥要区分。。。

伪需求吧。

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

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

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

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

© 2021 V2EX