Gcore CDN使用教程

Gcore CDN使用教程

在看GCore之前,可以看一下以下两篇文章,特别是Cloudflare:

GCore既可以当NS(域名服务器)用,又可以用CNAME的方式来给你的域名做CDN。也就是说,你既可以把整个域名的解析权交给GCore(像Cloudflare那样),也可以把某个三级域名CNAME到GCore给出的域名,然后由GCore来决定把你这个域名解析到哪个ip(需要在Gcore那边填ip),这样相当于是把某个单独的三级域名的解析权交给了GCore。

注册GCore CDN

进入gcore cdn官网:https://cdn.gcore.com/,注册登录,使用gmail登录不用验证邮箱,自己注册会给你发送验证邮箱的邮件。

如果是Google登录不要有这个,如果不是google登录,请去看看邮箱的确认邮件

选择第一个Free(免费套餐),包含流量1TB/月,请求次数10亿次/月

添加走CDN的域名

Create CDN resource

选择第一项,点击右上角Confirm

假设你的域名是example.com,你想给test.example.com套GCore cdn,那么这里就填test.example.com,注意这个域名不能是已经解析了的,它必须是不存在的,因为相当于是在GCore这边添加这个A记录

上图操作后,来到这里,填写你要把test.example.com解析到哪个ip

添加后它会列出你添加的DNS记录,我们点击右上角Confirm继续

上图Confirm后来到下图,可以看到,其实GCore跟cloudflare一样,也可以提供DNS解析服务的

同时你也会收到CDN Resource Activated的邮件

此时你有两个选择:

  • 1、如果你想使用GCore来作为你的NS服务器(即域名解析服务器),那么你可以跟按提示,去你的域名提供商那边修改为Gcore提供的NS服务器(上图中“with”下边那两个就是);
  • 2、不使用GCore作为NS服务器(域名解析服务器),那就不用去你的域名提供商那边修改;

以上不管你选1还是2,都要点击上图右上角的confirm(确认)进入下一步。

下一步来到这里,可以看到除了http/https(这是默认支持的),它还支持websocket cdn(当然这是cdn必须具备的功能了),目前没看到支持GRPC,这个页面什么也不用动,直接点右上角confirm就行

它会提示你CDN创建成功,点击Open resource settings按钮

这里选择HTTP and HTTPS

点击SSl→打开右侧SSL开关,并点击按钮获取Letsencrypt证书

正在申请时,它是灰色的,其中“Abort Let’s Encrypt certificate issuing”按钮表示“取消申请证书”

生效后是这样的(其实虽然它只是显示成这样,具体生效时间需要从你点申请证书之后的15到20分钟左右)

点击左侧的Cache→在右侧CDN Caching中选择“Do not cache”,其它全部不用改,点击右下角的Save changes保存,如果后续想要修改,还是可以进来改的

点击右侧的DNS(看不到图标可以往下滚动)

假设你最开始填的是test.example.com,那么记录如下,我们点击“test.example.com”这条记录右侧的编辑按钮(就是那支笔)→点击“CDN Integration”

去你的域名解析服务商那边添加一条cname记录,把下图中的for值came到Domain值(有可能是原始购买域名的服务商添加,或者你已经把它转交给cloudflare了那就是在cloudflare上添加,如果是在cf上添加,注意不要打开小云朵开关,否则相当于套双层cdn了,也不是不可以,但是要看具体速度)

如果添加错了可以在这里删除(屏幕不够宽可能显示不出后面三个点,要往右边水平滚动一下才能看到)

最后ping一下你添加的域名test.example.com确保能ping通

ping test.example.com

然后浏览器访问一下

https://test.example.com/you-ws-path

如果出现如下页面,说明SSL证书还没生效,一般从获取到生效可能要15-20分钟左右

如果显示“Bad Request”,说明已经生效了,此时你去使用就可以了。

关于免费域名申请证书问题

申请证书的方式有两种

  • dns-01:需要证书申请工具向域名解析网站发起请求(所以需要把域名解析网站的key和secret传给证书申请工具);
  • http-01:不需要依赖于域名解析网站,只需要把域名正确解析到当前服务器,你就可以在当前服务器申请,缺点是无法申请通配符证书(但可以一个证书多个域名);

前面我们做cdn的域名test.example.com肯定是要申请证书的,如果你之前申请过example.com通配符证书,那么其实就不用管证书的问题了,因为新加的test.example.com也会用这个通配符证书。

但是freenom申请的cf,ml,tk,ga,gq等免费域名,如果你把解析转移到了Cloudflare,那么它是不支持使用dns-01方式申请证书的(因为cloudflare把它禁了),而用http-01方式申请的话,这种方式本身就不支持申请通配符证书,也就是说freenom的免费域名只能申请非通配符证书(使用webroot方式),但现在问题的关键是,我这边是使用cname的方式添加的域名,这个域名访问http://test.example.com/.well-known/acme-challenge/test.txt时返回{"message":"Not found."},换其它域名又能访问,原因是GCore会特殊对待这个URI/.well-known/acme-challenge/,因为GCore申请证书也是Let’s Encrypt的证书,当GCore申请Let’s Encrypt证书时,Let’s Encrypt会向GCore发起对/.well-known/acme-challenge/URI的请求,GCore那边有识别这个URI的规则,会给这个URI返回对应的响应,而我们自己申请证书时,也是通过GCore CDN走的,所以GCore就无法区分到底是我们自己在申请证书还是它在申请证书,目前GCore的规则就是统一把对/.well-known/acme-challenge/URI的请求给拦截下来了,不返回正常文件的内容,而是返回一个json{"message":"Not found."},,而我们自己申请证书时就需要这个路径能返回正常内容才行,所以最终就是无法申请。反正就是freenom的免费域名如果用了GCore cdn,就会无法申请证书,但神奇的是,不申请证书它也能用(我服务器用的证书不包含我GCore上添加的cdn域名),我怀疑是因为GCore对我服务器请求时,自动忽略了证书。

以下是GCore关于Let’s Encrypt HTTP-01 challenge的模板规则

点进去就能发现其实就是/.well-known/acme-challenge/URI的规则

如果我们自己新建一个Let’s Encrypt HTTP-01 challage的规则,就能修改它的原规则

把规则修改成这样,这样当Let’s Encrypt请求/.well-known/acme-challenge/URI时,GCore由于规则对不上(因为我们改成了下图这样),就不会拦截,这样我们自已在VPS里就能正常申请证书了,但这会导致GCore自己无法申请证书,因为规则对不上,它就无法对这个请求做出响应,所以这并不是一个解决办法

也就是说,使用CNAME方式走GCore CDN的域名,如果必须使用HTTP-01方式申请证书,那么其实是无法申请的,如果把NS(域名服务器)切换为GCore我也不知道能不能,没有测试,但好在不申请证书也能用,并且GCore也不是什么好的CDN,没啥意思,速度非常一般。

打赏
订阅评论
提醒
guest

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
()
x

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

Gcore CDN使用教程