问题
1、境内CloudFlare访问速度慢;
2、境内CDN价格高昂;
3、CloudFlare DNS不支持分区解析,而国内DNS(如腾讯DNSPod和阿里DNS)均支持分区解析;
4、CloudFlare的Partner已经被官方堵死。
目标
境内采用国内CDN,境外采用CloudFlare SaaS 进行CNAME接入
解决思路
现假设:服务器IP地址为 45.66.77.77、网站域名为example.com、代理域名为proxy.com
· 境内Client访问example.com => (境内) CNAME / IPV4
· 境外Client访问example.com => (默认) CNAME(x.proxy.com)
=> 继续进行DNS查询(返回CF的CDN泛播IP)
=> 给回退源(x.proxy.com)的IP(45.66.77.77)发送请求
配置过程
1)首先开通CF SaaS服务,可以使用Paypal或信用卡。
2)进入“自定义主机名”页面。
Step1:设置回退源为x.proxy.com;
Step2:添加自定义主机名,自定义主机名填自己的网站域名example.com;
Step3:添加完成后,需要在example.com域名DNS中添加解析,进行TXT验证;验证成功后,证书状态即变为绿色的“有效”。
疑难
1、在example.com的TXT验证过程中,需要进行解析,但CF给的记录名称为全部内容(如_xxxx.example.com),但在实际解析时,需要删除example.com部分。
2、配置完毕后,访问CNAME域名提示:该网页无法正常运作,xxx将您重定向的次数过多。(报错:ERR_TOO_MANY_REDIRECTS。)
原因:当使用CDN后出现重定向次数过多,通常是源站配置不当导致回源时进入重定向循环。常见原因是源站强制HTTPS跳转,而CDN配置了80端口或跟随协议回源。客户端通过HTTP访问加速域名时,源站跳转至HTTPS,但CDN仍通过HTTP回源,源站再次跳转至HTTPS,形成死循环。解决方法是确保源站和CDN的回源协议配置一致。
所以要解决问题,也是要先关闭源站强制HTTPS跳转。