CloudFlare + CDN访问优化
上一篇提到:如果不介意使用三级域名,套上一个CDN,HTTP回源或许是最好的方式。 今天来写写教程,注意:优化效果在校园网是体验不出来的,流量才行。 CloudFlare Tunnel 优化简述 CloudFlare Tunnel 工作流程大致为,我们的小主机通过cloudflare提供的特定ip的7844端口连接到cloudflare tunnel,用户就可以通过域名进行访问了。 从图中可以看出,主要优化有两方面,一个是小主机到cloudflare的优化,另一个是用户到cloudflare的优化。现在主要说优化2。 为什么优化可以实现? 对于校园网来说,cloudflare的流量最终都会前往香港节点,所以影响不是很大,而对于非校园网的情况来说,几乎解析出来的IP最后都是到美国的,通过让小主机走香港代理和让用户走香港CDN,都是为了使我们的流量到香港,最终实现低延迟的效果。 为什么使用三级域名? 域名必须在CloudFlare上才能使用Tunnel服务。 CloudFlare会7天检查一次NS记录,第一次检查会显示已移动,没有影响,第二次检查会直接删除域名。 CloudFlare没有在国内的DNS服务器,DNS解析速度非常感人。所以需要NS二级域名到其他国内DNS,太多了每个都得解析一遍不太现实。 实现方式 以DNSPOD和CloudFlare配合为例,步骤如下: 解析一个二级域名NS记录到DNSPOD 我这里使用的是n,如果要修改,下面代码也需要修改。 添加一个worker,内容如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 function handleRequest(request) { let url = new URL(request.url); if (url.protocol == 'wss:') { url.protocol = 'ws:' } url.protocol = 'https:' // 删除二级 url.host = url.host.replace('.n.', '.'); return fetch(new Request(url, request)); } addEventListener("fetch", (event) = >{ event....