需求
我们的站点以中文为主,且服务器地址也位于中国,面向的访客也主要是国内,所以面向国内的CDN一定是要使用的,但同时我们也想要国外的用户也能达到加速的效果,这将如何实现呢?
没错,就是分地域的DNS解析!
一般情况下,DNSPod提供的免费版解析就能够根据境内外提供不同的DNS解析记录,但如果想要细分到大洲,就需要购买价格较为昂贵的企业版DNS解析。前几天我在看云厂商价格的时候,发现了
简而言之,可以按照以下精度进行不同地域的不同DNS解析。
运营商线路:中国内地细分运营商,包括电信、联通、移动、教育网、广电网,细分大区/省份。
地理位置线路:中国内地细分大区/省份、全球(不含中国内地)细分大洲/国家或地区。
云厂商线路:阿里云、腾讯云、百度云、华为云、火山引擎。
线路分组:允许您添加企业版支持的全部运营商线路、地理位置线路和云厂商线路。
设置解析
登录火山引擎控制台,在搜索框中搜索DNS,进入TrafficRoute DNS套件,添加域名,进行TXT记录验证
添加完之后,更改这个域名的NS记录到提供的地址,完成这些,等待约10分钟就会生效。
选择CDN服务商
CDN的提供商数不胜数,依据自己的喜好选择就好。这里作为演示,我将使用
首先,我们需要注册平台的相应账号,这里不作演示。其中JITUCDN在实名认证之后每个月会送30G的流量,CLOUDFRONT会送1TB流量和1千万次HTTPS请求,由于JITUCDN是国内厂商,所以要求实名认证以及备案的网站。
AWS提供的免费额度
Cloudfront的注册稍麻烦,需要一张外币卡且有被风控风险,这里推荐谨慎使用。
CDN的设置
接下来,我们以JITUCDN为例接入站点。
源站的配置
这里我们需要先解析一个不会被别人知道的域名到网站的服务器上,例如secret-backend.yoursite.xxx
,解析过后在你的网站配置文件将其加入监听并配置SSL证书,确保在浏览器输入此地址可以进入网站。
JITUCDN
首先,打开首页:
在此,加速域名填入你想要用户访问的地址,例如blog.yoursite.xxx
,加速类型选择网站加速,覆盖范围选择中国大陆,源站配置这里我们选择域名源站,并将刚才的secret-backend.yoursite.xxx
填入,保存之后点击创建
源站配置这里这样填
回源方式
HTTPS配置,这里你需要上传你自己的证书,或者选择免费的Let's Encrypt的免费的证书
在高级配置这里,加入上图所示的HTTP Header
都设置完成以后,回到基本配置这里,将CNAME的值复制。
前往DNS解析控制台,添加这样的DNS解析记录:
完成后就会生效
分享一个可以在页脚显示命中CDN名称及服务器的小插件:
<script type="text/javascript" src="https://cdn.staticfile.org/jquery/3.4.1/jquery.min.js"></script>
<script>
$.ajax({
url: "/",
method: "GET",
success: function(data, status, xhr) {
let cdnoffer = xhr.getResponseHeader("CDN-Offer");
let cdnserverjitu = xhr.getResponseHeader("Ohc-Cache-Hit");
let cdnserverfast = xhr.getResponseHeader("x-served-by");
let cdnserverfront = xhr.getResponseHeader("x-amz-cf-pop");
let cdnserverbunny = xhr.getResponseHeader("Server");
document.getElementById("cdnoffer").innerHTML = cdnoffer;
document.getElementById("cdnserverjitu").innerHTML = cdnserverjitu;
document.getElementById("cdnserverfast").innerHTML = cdnserverfast;
document.getElementById("cdnserverfront").innerHTML = cdnserverfront;
document.getElementById("cdnserverbunny").innerHTML = cdnserverbunny;
}
});
</script>
<p>当前CDN提供商:<span id="cdnoffer"></span><br>命中CDN节点:<span id="cdnserverjitu"></span><span id="cdnserverfast"></span><span id="cdnserverfront"></span><br>CDN服务器:<span id="cdnserverbunny"></span></p>
这里杂糅了很多我其他CDN的响应头,删掉就好。
完