cloudflare自选节点 加速访问
之前的文章提到了,我使用了github page + coding page双部署的方法来存放我的博客,并配合dnspod智能解析,让国内用户直接访问coding page,境外直接访问github page,一方面是为了加速境内的访问,另一方面也是为了让百度蜘蛛能够顺利爬取博客的内容(因为github page是禁止了百度蜘蛛的访问的)。但是部署几天后,有人向我反馈了中国移动打开我的网站缓慢,甚至根本打不开,我一开始还以为他们解析到了github page所以访问慢,没想到一看记录,他们无法访问的ip是腾讯云新加坡的coding page…看来移动真的是令人头疼,今天我尝试使用了cloudflare并自定义节点,让移动直接访问cloudflare的香港节点,令人惊喜的是,改用cloudflare香港节点后,移动的访问速度有了挺大的提升。关于自选节点,其实网上已经有了很多教程了,不过感觉很多都比较杂乱,所以干脆写一个简洁明了一些的出来。
自选节点
设置CNAME接入
在cloudflare的官网上,免费版用户是没办法使用CNAME接入cloudflare的,只能使用修改域名服务器接入的方式,不过在cloudflare partner的网站上我们就可以使用cname接入了,网上有不少cloudflare partner的接入平台,如萌精灵,笨牛,挖站否 ,我这以萌精灵为例。 添加CNAME记录,以本网站为例子,因为我直接就是aoyouer.com所以我直接添加@记录即可,指向源站,即我们加速前的网站的域名 如 example.github.io。 添加成功后,下面就会出现一条CNAME接入的记录。 复制这个CNAME,前往支持支持智能DNS的服务商处(如果想要自选节点,必须要支持智能解析),我使用的是dnspod,添加一条CNAME记录,主机记录为@,类型CNAME,线路类型默认,记录值就填写上面这个CNAME记录。做完这一步,我们便完成CNAME接入了,如果没有其他的记录(如dnspod中的分线路解析),我们直接访问aoyouer.com便是经过cdn访问了。
选择节点ip
这一步很简单,比如cloudflare的香港节点对于中国移动的访问比较友好,那么我们先找出cloudflare的节点ip,这里列出一些(来自于挖站否),更多的ip请去他们那看。
108.162.236.1/24 联通 走美国 172.64.32.1/24 移动 走香港 104.16.160.1/24 电信 走美国洛杉矶 172.64.0.0/24 电信 美国旧金山 104.20.157.0/24 联通 走日本 104.28.14.0/24 移动 走新加坡
(联通移动推荐节点)
104.23.240.0-104.23.243.254(电信推荐百度云合作ip)
162.159.208.4-162.159.208.103162.159.209.4-162.159.209.103
162.159.210.4-162.159.210.103 ``162.159.211.4-162.159.211.103
比如我想加速移动的访问速度,让移动都走香港节点,那么我选用172.64.32.1这个ip(可以现在ipip.net这样的网站上看看移动节点的路由和ping值怎么样,如果你不是移动网络,不要在你本地尝试,因为anycast下电信用这个ip还是会跑到美国去的)。 选择这个节点,只需要在dnspod中添加一个A记录,主机名@,线路选移动,记录值就填写这个ip即可。等待几分钟后再用移动访问,看看速度是否快一些了呢?如果不确定自己是不是真的走了cdn节点,走的是哪个地方的节点,可以在网址后面加上/cdn-cgi/trace即可。 如我使用移动访问本站加上/cdn-cgi/trace后,colo=HKG,的确走了香港节点。
使用CDN后出现重定向次数过多的错误
我们有时候在开启CDN后会出现重定向过多的错误,无法访问网站,网上的介绍如下(来自wordpress智库):
Cloudflare CDN 配置
- Flexible:当我们的源网站没有配置 HTTPS 支持时,启用这个选项,Cloudflare 会在回源的时候通过 HTTP 协议访问我们的网站。
- Full:当我们的源网站支持 HTTPS,但是 HTTPS 证书和域名不匹配或者是自签名证书时,Cloudflare 会通过 HTTPS 协议访问源网站,但不会验证证书,也就是说,即使我们的源网站提供的 HTTPS 证书不受浏览器信任,Cloudflare 也会通过 HTTPS 回源网站。
- Full(strict):当我们的源网站支持 HTTP ,并且证书有效时(未过期且受信任)。Cloudflare 会通过 HTTPS 协议访问源网站,并在每个请求过程中验证证书。
了解了上面各个设置的功能,我们来看一下 Cloudflare 的循环重定向问题是怎么出现的,在 Cloudflare 中开启了 SSL 后,访问网站时出现循环重定向需满足下面两个条件:
- SSL 中设置了 Flexible,CDN 以 HTTP 协议回源网站。
- 源网站支持 HTTPS,并且设置了通过 HTTP 协议访问时,自动跳转到 HTTPS 协议。
到这里,可能就有朋友发现问题了,我们访问 Cloudflare 的 CDN 服务器的时候,是通过 HTTPS 访问的,CDN 访问源网站的时候,是通过 HTTP 访问的,源网站上 HTTP 又自动跳转了 HTTPS,完美的一个循环重定向。重定向的次数多了,浏览器就撂挑子报出了 ERR_TOO_MANY_REDIRECTS 的错误。
解决的方法很简单,前往cloudflare官网,ssl/tls设置中吧ssl/tls加密模式改为FULL即可。