前言
CLAWRUN是一个云原生的容器平台,我们可以在上面运行一些容器,并且由于该平台免费给GITHUB注册了超过180天的所有用户每个月免费提供一些使用额度(5刀的额度),所以有很多人都在用这个平台跑容器。但是也是因为免费,他家的服务器IP已经被滥用的非常严重,导致国内访问速度非常不理想,如图1所示,可以看到使用itdog测试,大部分情况下丢包严重,几乎达到无法正常访问的地步了。
对于这一种情况,我们便有一种方案,给我们运行在clawrun上的服务器套上一层CDN。这样子请求会先到CDN,然后由CDN再向CLAWRUN进行请求。此方案能够极大的改善访问的可靠性。而有名的CDN厂商有很多,今天我这篇文章就主要介绍下如何给CLAWRUN的容器上套CLOUDFLARE的CDN和最近兴起的EdgeOne CDN平台。
套CLOUDFLARE的方法
CLOUDFLARE是一个非常老牌的CDN厂商,我们大部分情况下是通过NS接入他家的CDN(即直接将域名的NS解析服务器改为他们家的),所以这个方案也适用于所有以NS接入方案的CDN厂商。
首先,我们先前往CLAWRUN的控制台,然后点击App launchPad,如图2所示。
找到我们要套CDN的那个容器,并点击对应容器的Operation栏目下面的三个点(更多选项),然后在弹出的下拉栏目中选择Update选项,如图3所示。点击后我们将会开始对容器进行修改。
点击修改按钮后,找到network这个栏目,点击custom domin,如图4圈出的部分
点击这个按钮,弹出如图5的界面,复制图5中我圈出的CNAME地址。
然后到cloudflare的控制面板中,找到对应的域名的DNS记录,添加一个记录(类型请选择CNAME),名称自己选一个,目标填写CLAWRUN给的CNAME信息,如图6所示。请注意此时不能打开小黄云(由于CLAWRUN在配置的时候会对CNAME进行验证,而如果使用了小黄云的话,CNAME信息会被隐藏从而导致验证失败)。
然后回到CLAWRUN的控制面板,将刚刚配置的域名(就是创建的子域名的地址)填到图5中的custom domin这个地方,然后点击confirm 。(请注意,刚刚配置好的CNAME可能会会验证失败,显示CNAME error, You must configure CNAME to the provided domain before binding。这个时候只需要稍等一小段时间,然后再点击confirm)
添加成功后,在图4所在的配置界面中点击更新按钮(UPDATE)。等待容器重启。重启后,可以看到如图7中的界面,其中红框圈出的pending则是代表还在处理中。我们先等待这个pending处理完成(这可能要很长一段时间),直到状态变成 Available即可。
等容器重启完成之后,请再重新回到图6中的cloudflare的域名解析控制面板,然后,找到刚刚配置的子域名面板,将小黄云打开。至此,给部署的容器套上cloudflare的过程就完成了。
套EDGEONE的方法
腾讯的EdgeOne有两种接入方式,一种是NS接入,一种是CNAME接入方式。请注意,如果你用的是NS接入方式,那么给clawrun套edgeONE的操作方法则与cloudflare差不多。我们主要讲CNAME的接入方案(这也是大部分的CDN厂商的接入方案),当然,这个操作方法不止适用于EDGEONE,也适用于所有以CNAME方法接入的CDN厂商(如lightCDN、百度云CDN等、阿里云ECDN等)
对于CLAWRUN来说,我们平常的直接在CDN处填写源站,然后域名解析到CDN的方案是无法正常使用的。(当在CLAWRUN上配置了自定义的域名,原来CLAWRUN提供的域名只能CNAME解析用,而无法直接访问,会显示类似链接被重置的报错,从而导致无法回源)
这个时候,我们就要转化思路,我们为什么一定要拘泥于通过他们的自定义域名功能来绑定呢?我们直接在CDN中配置,源站就是clawrun提供的CNAME信息,直接根据这个信息回源。
我们先到clawrun中的容器列表中,找到我们要套CDN的容器的公开访问地址,(即点击图3中的容器名称即可),然后再新的界面的network栏目中找到Public Address,如图8所示
然后复制地址,直接填写到CDN的回源地址中,如图9所示。并且,请一定要将回源的HOST头改为CLAWRUN提供的回源HOST头,否则会出现响应代码全部返回503的问题!
然后点击下一步,将EDGEONE的CNAME解析到域名厂商那里(就如我们平常所作的那样),然后稍等一段时间,访问配置的域名,可以看到已经成功配置完成了。一切大功告成~。