CDN概念剖析
这里解释一下几个概念,摘自阿里云官方文档。
源站: 源站决定了回源时,请求到哪个IP
回源host:回源host决定回源请求访问到该IP上的哪个站点
例子1:源站是域名
源站为 www.a.com 回源host为 www.b.com
那么实际回源是请求到 www.a.com 解析到的IP,对应的主机上的站点 www.b.com例子2:源站是IP
源站为1.1.1.1 回源host为www.b.com
那么实际回源的是1.1.1.1对应的主机上的 站点www.b.com自定义在CDN节点回源时所需访问的具体域名(如果您一个IP源站绑定了多个域名/站点的时候,就需设置回源Host 指定回到具体哪个域名,否则会回源失败)。
– 回源host 为可选配置项,默认值为:
– 如果源站是 IP类型,回源host默认加速域名。
– 如果源站是 OSS源站类型,回源host默认是源站域名。
– 可选项分别是:加速域名、源站域名、自定义域名。注意:目前不支持sni 回源。
别看最后一句不起眼的:目前不支持sni 回源。
我后面所有的折腾其实就是因为没有意识到这句话的含义,想着这个应该和我没关系。
CDN流程剖析
好了,我们继续。
这里画了一个简单的流程图说明一下我对阿里这个配置的理解。
CDN流程:
对应名词在图中的位置:
这个流程用文字再说一遍就是,当我想要访问加速的域名 www.test.com 的时候,我们会被解析到设置的CNAME域名上,也就是阿里的CDN服务器上,加入这时候CDN服务器上没有我们想要的资源,这时候他会去我们的源站上取,但是怎么知道源站在哪呢?
当然是我们配置的啦!这时候如果源站配置的是IP,嗯,好了,CDN服务器直奔这个IP;如果我们源站配置的是域名的话,嗯,这个也简单,先解析出这个域名的IP是啥,然后我们再直奔这个IP。就这样,CDN服务器找到了源站所在服务器的IP,但是,这时候问题又来了,假如这个IP上有不止一个域名,服务器如何知道你想要哪个域名的资源呢?当然你CDN服务器去取时就要告诉这个它,我要的是 www.test.com 这个域名的资源,这就是是回源host的意义。
至于源站端口设置,就是告诉CDN服务器,你从80还是443端口来取数据,一般http对应80端口,https对应443端口。
而https设置决定了CDN服务器和用户之间是用http还是https进行数据传输,如果不设置的默认用http,设置的话就是https。