查看原文
其他

如何在1小时内,只花25美元就自行构建起横跨3大洲的CDN

2015-11-17 云头条


作者简介:Chris Ueland是MaxCDN的首席执行官。



趁周末闲来无事,我们决定自己搞个有意思的项目:使用Go GeoDNS、DigitalOcean、Docker和Nginx,自行搭建一个内容分发网络(CDN)。


第一步:向DigitalOcean订购一个DNS实例。


我们选择了SFO和第二小实例。

我们设置好了DNS信息以指南这里(NS1和NS2都指南这里,以便安装设置)。这些是A记录 。

ns1.deploy.io 192.241.224.116

ns2.deploy.io 192.241.224.116


第二步:安装Docker,并运行Docker,实例上有“coocood/geodns”映像。


想了解详细情况,请参阅。


第三步:向DigitalOcean订购面向Nginux的CDN“边缘”实例。


我们使用了最小的实例。针对这个例子,我们使用它们安装了DNS:

test-sfo-do.deploy.io 107.170.251.75 San Francisco $5/mo

test-jfk-do.deploy.io 107.170.45.174 New York $5/mo

test-sin-do.deploy.io 128.199.216.96 Singapore $5/mo

test-ams-do.deploy.io 188.226.185.173 Amsterdam $5/mo


这里是DigitalOcean的界面模样,所有机器已启动起来:


使用DigitalOcean的CDN边缘服务器


第四步:为CDN设置测试域:


如果你查询deployiotest.com,4台Web服务器被随机选择。

如果你查询,它会进入到位置最近的地域服务器。

设置名称服务器,以便指向我们之前设置的:

ns1.deploy.io 192.241.224.116

ns2.deploy.io 192.241.224.116


使用whatsmydns.net(Daniel提供的一款出色工具),你就能查看我们为测试域“www.deployiotest.com”返回具有地域功能的结果。


使用whatsmydns.net的CDN地域DNS测试


我的DNS是什么


whatsmydns.net是一项在线服务,让你可以立即执行DNS查询,对照全球各地一批选择的随机性名称服务器,检查主机名称、当前IP地址及其他DNS信息。


{

"serial":1394372421,

"ttl": 390,

"targeting": "country continent @ regiongroup region ip asn",

"data":{

"":{

"ns": ["ns1.deploy.io", "ns2.deploy.io" ],

"random":[

[

"107.170.45.174",

"1000"

],

[

"128.199.216.96",

"1000"

],

[

"107.170.251.75",

"1000"

],

[

"188.226.185.173",

"1000"

]

]

},

"www":{

"alias": ""

},

"www.us-west":{

"cname": "test-sfo-do.deploy.io."

},

"www.europe":{

"cname": "test-ams-do.deploy.io."

},

"www.asia":{

"cname": "test-sin-do.deploy.io."

},

"www.us-east":{

"cname": "test-jfk-do.deploy.io."

}

}

}


第五步:使用JustPing.com,核实你的CDN在正常运行。


只要在上对它测试一下。


任务事项


  1. 注意:来自akerl_ on HN的注释指出“本文并没有指出为记录运行单一DNS服务器的重大风险。”提到这一点很有必要。想清楚了再部署到生产环境――这仅仅是个例子而已。

  2. 在GeoDNS服务器上使用一个小小的守护进程,增添不要不对服务器进行轮换的方法。

  3. 为美国/欧洲和亚洲之外的地区调整Geo图。

  4. 添加来自其他提供商的更多虚拟服务器。

  5. 使用lib-cloud,添加启动服务器的方式。


感谢Ewan Chow为本文作出的贡献。Ewan是派驻中国的Go开发人员。他喜欢捣鼓高效的低层代码。他在GitHub上的简介在此(https://github.com/coocood/)。


结束语


你是否喜欢使用这种CDN?欢迎留言交流!


新闻来源:www.scalescale.com|云头条编译(未经授权谢绝转载)


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存