假如 3 台服务器,一台源站,2 个自建 CDN,在 Nginx 配置的时候回源方案目前想到 2 个,但不是很好,请问是否有更好的方案。
CDN 上进行 hosts 回源,但是自建 CDN 一多,这样很麻烦。
使用 DNSmasq 自建一个 DNS,然后在 nginx 设置 DNS 来指定回源。
请问有更好的办法来实现回源吗?尤其是自建 CDN 节点较多的情况下。
1
asuraa 2018-01-20 14:02:31 +08:00 via iPhone
有现成的为何不用?
|
2
402645707 2018-01-20 14:03:28 +08:00 via Android 2
指定到 CNAME 然后自建 dns 配置 cname 选择是否回源
|
3
shindo10 2018-01-20 14:16:53 +08:00
方案二已经就很方便了呀
|
4
shindo10 2018-01-20 14:18:10 +08:00 1
抱歉,打错,是说二楼的方案
|
6
likuku 2018-01-20 14:52:21 +08:00
CNAME 是市面上 CDN 服务厂家标准用法,嗯,十年前就是如此了。
剩下就是根据地理位置给不同 IP 地址解析了。 地理位置 IP 范围库这个是最难的,记得很久很久以前某国内 CDN 大佬(那时还未上市 ),优势就在于各地都有员工,和当地通讯联系比较紧密,IP 地理信息库就更新的很及时。 如今,一些国内外 DNS 服务已经提供了 GEOIP 指向服务,直接用它们的,就方便很多了。 |
7
xiaoz OP @402645707 抱歉,我还是不太明白。我这里指的是 CDN 节点要去请求源 IP 的数据,而不是 CNAME 直接回源。
|
8
likuku 2018-01-20 16:07:56 +08:00 1
@xiaoz CDN 现有作法:
客户资源对外发布地址: pub.name.tl CDN 平台上这样绑定: pub.name.tl.node.service.cdn.inc 的 源 forcdn.name.tl 客户 DNS/NS 上这样两条记录: forcdn.name.tl IN A 客户 web 服务器 IP 地址 pub.name.tl IN CNAME pub.name.tl.node.service.cdn.inc. |
10
txydhr 2018-01-21 07:51:30 +08:00
一般回源地址和对外的地址不一样吧
|
12
lemonda 2018-01-21 14:11:04 +08:00
@likuku
这种做法在测速时,要解析 pub.name.tl ,总显示慢 100ms 左右 现在有的 CDN 提供这种绑定 客户全站地址都是:www.name.tl CDN 平台上这样绑定: name.tl.node.service.cdn.inc 的源 forcdn.name.tl/客户的 web 服务器 IP 地址 Host header 指定为 www.name.tl 客户 DNS/NS 上这样两条记录: forcdn.name.tl IN A 客户 web 服务器 IP 地址 www.name.tl IN CNAME name.tl.node.service.cdn.inc. 对于改动不频繁的网站可以把网页本身而不只是静态资源缓存在 CDN 的 edge node 上 类似 Nginx 的 proxy cache |