国内站点选择 CDN 服务需谨慎,Cloudflare 并非最佳选择
cdn加速方案,现在有了新的思路和新的工具。企业级客户提供的终极加速方案。
在开始阅读这篇文章之前,我想先声明一下自己的观点:国内网站不到必要的情况下,还是不要使用CDN服务,除非你搭建的网站使用的服务器不在国内,否则国内有很多CDN服务可以满足你的网站加速需求,比如阿里云、腾讯云、七牛云、UPYUN等服务商提供的CDN。
但是,如果您必须使用 CDN,您可能需要看看这个教程,它清晰易懂,尽情享受吧!
前言
最近又开始优化博客的访问速度了,在上次优化的基础上又进行了一次改进,这次用的是之前放弃的CDN加速方案,现在有了新的思路和新的工具。
cdn节点都在海外,国内访问速度不理想,如果自己的vps线路质量好,使用cdn会变慢。这是我之前的想法,但是自从计划推出以来,可以免费使用cname解析。这就可以让你使用一些技巧来实现自定义CDN节点。
DNS 解析
本来想按照逻辑顺序来写的,但是考虑到实际操作是按照工具的顺序进行的,所以我们先从DNS解析开始吧!
以前我们如果要使用免费的CDN,就必须使用DNS解析,现在有了方案,就可以免费使用CNAME解析,这次选择了我们提供的DNS解析,同时我们还提供D监控服务,D监控可以监控网站线路,并根据网络情况自动切换节点
我们先来谈谈什么是d监控
什么是 D-监测?
D监控就是:当确认你的某台服务器宕机后,系统会自动为你切换至可用的服务器,宕机的服务器恢复后自动切换回原IP(注:系统默认不开启D监控,需要你手动开启D监控)
检测原理:所有监控点都会向目标服务器发起HTTP请求,当且仅当所有监控点都没有收到响应时,我们才会认为服务器宕机并执行操作。(这里要注意的是403等错误返回只会提示警告,不会切换IP,500以上的错误提示关机切换)
要使用DNS解析,首先要注册一个域名,并在上面放上域名。我相信任何有能力建网站的人都可以做到这一点,所以我就不多说了。
域名放入DNS解析后,暂时不要设置D监控,此时即可获取CNAME
首先注册一个账号(),然后登录。
我使用提供的服务:
注册并登录的服务,然后选择添加域名,使用cname的方式访问。
BNXB管理后端
提交之后会给出cname地址,将cname地址填入dns解析中。
CNAME回源设置
过一段时间就会生效,ping网站看看是否使用了CDN,如果此时使用了CDN,ping网站时就会出现cname地址。
重头戏来了
cname接入cdn最大的好处就是可以自定义cdn节点,这样我们就可以选择国内最快的cdn节点来实现加速访问,并且加上d监控的支持,防止因为线路问题导致网站中断。
目前提供的免费节点很多都已经玩完了,需要自己去测试一下。
这里我分享一些网上提供的IP地址,选择网段的IP地址然后修改,填好,例如172.64.32.56,根据运营商来填,每个运营商填两个节点,海外是默认的:
172.64.32.1/24 (推荐移动,走香港) 104.28.14.0/24 (推荐移动,走新加坡) 104.23.240.0-104.23.243.254 (推荐联通、移动,线路未知) 108.162.236.1/24 (推荐联通,走美国) 104.20.157.0/24 (推荐联通,走日本) 104.16.160.1/24 (推荐电信,走洛杉矶) 172.64.0.0/24 (推荐电信,走旧金山) 172.64.32.* (走欧洲) 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.18.62.1/24 香港hkix.net 104.16.35.1/24 香港hkix.net 104.16.36.1/24 香港hkix.net 104.18.35.1/24 香港hkix.net 104.18.36.1/24 香港hkix.net 104.16.54.1/24 香港 104.16.55.1/24 香港 104.18.128.1/24 香港 104.18.129.1/24 香港 104.18.130.1/24 香港 104.18.131.1/24 香港 104.18.132.1/24 香港 104.19.195.1/24 香港 104.19.196.1/24 香港 104.19.197.1/24 香港 104.19.198.1/24 香港 104.19.199.1/24 香港 #适合电信的节点 104.23.240.* #走欧洲各国出口 英国德国荷兰等 延迟比美国高一些 适合源站在欧洲的网站 172.64.32.* #虽然去程走新加坡,但是回程线路的绕路的,实际效果不好,不推荐 104.16.160.* #圣何塞的线路,比洛杉矶要快一点,推荐 108.162.236.* #亚特兰大线路,延迟稳定,但是延迟较高 #适合移动的节点 162.158.133.* #走的丹麦,这一段ip只有部分能用,可以自己试一下,绕美国 198.41.214.* 198.41.212.* 198.41.208.* 198.41.209.* 172.64.32.* 141.101.115.* #移动走香港的IP段有很多,以上并不是全部。CF移动走香港的分直连和走ntt的效果都挺不错的,不过部分地区晚上还是会丢包。 172.64.0. * #这是走圣何塞的,一般用香港的就行 172.64.16.* #欧洲线路.绕 #1.0.0.1效果较好 电信部分 大多数省直接使用1.0.0.0即可,延迟低,丢包少, # 移动部分 #新加坡 104.18.48.0-104.18.63.255 104.24.112.0-104.24.127.255 104.27.128.0-104.27.143.255 104.28.0.0-104.28.15.255 # 移动部分 #圣何塞 104.28.16.0-31.255 104.27.144.0-243.254 104.23.240.0-243.254 #香港cloudflare1-100g.hkix.net 1.0.0.0-254 1.1.1.0-254 #香港直连 104.16.0.0-79.255 104.16.96.0-175.254 104.16.192.0-207.255
还有奇怪的花招
如果不想测试那么多节点,或者担心节点崩溃,可以把除默认值之外的所有记录值都写成 1.0.0.1。这样它会自己判断,解析之后 DNS 记录会全部转移到 1.0.0.1,看上去很不错:
域名DNS管理
启用 D 监控
点击下面显示的图标,检查所有节点;
D 监控设置
查看节点状态,目前免费节点延迟会有波动,只要运营商线路对应的节点不是红色的,就没有问题。
域名监控
如果后期对节点不满意,可以直接替换D监控中的节点,效果很快,可以及时查看新节点的状态。
页面规则
HTML文件默认是不缓存的,所以为了将尽可能多的数据放入节点,我们需要设置缓存内容。
这是官方对页面规则的解释,建议大家看一下,懒得看也没关系,直接按照我的设置就可以了:
页面规则设置
注意!有优先顺序
sleele.com/wp-admin* sleele.com/*preview=true* sleele.com/*
缓存需要时间,所以最好把edge cache ttl设置长一点,不然还没缓存到CDN就过期了。我设置成7天,后台和预览文章都不缓存。
这里再补充一句,因为免费账户只有3条规则,不够你用的,为了节省规则,你需要修改登录地址,改为wp-;
安装wp-login.php插件,将登录地址改为wp-。
后台登录地址
测试缓存是否成功
可能需要一段时间才能看到效果,但是那时你就可以通过CDN节点判断是否是。
关掉代理软件,打开开发者模式,标签页,缓存禁用浏览器缓存,选择自己的网站网址网站优化方案,标签页,检查是否是之前在DNS解析中设置的地址。
缓存命中视图
cf-cache-:HIT 代表缓存命中。检查标签并查看 TTFB 时间。越短越好。
TTFB 信息查看
经过CDN后访客IP地址错误的解决方法
使用CDN之后,访客IP和消息IP都会变成CDN的IP,解决办法也很简单,官方也给出了解决办法。
将访问者的 IP 地址包含在 X--For 标头和 CF--IP 标头中。
修改Nginx配置文件网站优化方案,在http内容中添加如下内容,并添加IP段:
location / { set_real_ip_from 103.21.244.0/22; set_real_ip_from 103.22.200.0/22; set_real_ip_from 103.31.4.0/22; set_real_ip_from 104.16.0.0/12; set_real_ip_from 108.162.192.0/18; set_real_ip_from 131.0.72.0/22; set_real_ip_from 141.101.64.0/18; set_real_ip_from 162.158.0.0/15; set_real_ip_from 172.64.0.0/13; set_real_ip_from 173.245.48.0/20; set_real_ip_from 188.114.96.0/20; set_real_ip_from 190.93.240.0/20; set_real_ip_from 197.234.240.0/22; set_real_ip_from 198.41.128.0/17; set_real_ip_from 199.27.128.0/21; set_real_ip_from 2400:cb00::/32; set_real_ip_from 2606:4700::/32; set_real_ip_from 2803:f800::/32; set_real_ip_from 2405:b500::/32; set_real_ip_from 2405:8100::/32; set_real_ip_from 2c0f:f248::/32; set_real_ip_from 2a06:98c0::/29; # use any of the following two real_ip_header CF-Connecting-IP; #real_ip_header X-Forwarded-For; }
# 加载配置 nginx -s reload
再次加速
就是动态生成的网页,为了进一步提高加载速度,WP Super Cache可以生成静态页面,并开启gzip压缩选项,Cache可以将经过gzip压缩的HTML缓存到CDN中,提高加载速度,另外该插件还提供了非常优秀的优化支持。
WP Super Cache 页面压缩已开启
WP Super Cache 压缩有效吗?
另外建议安装官方插件
可以手动、自动清除缓存并查看数据分析,非常实用。
插件安装
速度测试
首先这些速度测试成绩只能作为参考并没有太多的实际意义,尤其是测试。
boce 全国速度测试
boce 网站速度测试
速度测试
关于网站速度测试,可以阅读两篇文章:网站速度测试性能深度教程【附15个常用网站速度测试工具】和如何在测试中取得满分/100分!
结论
目前免费的CDN加速方式就这些了,我在页面规则里关闭了性能优化,不推荐,还有一个付费的据说能大大提升速度,不过我没用过,经过上面的优化,大部分人应该可以在3秒内打开我的网站。
它是针对企业级客户的终极加速解决方案,要使用它,你需要将你的网站包升级到或,然后在服务器上安装必要的软件,并在其上完成配置。这相当于一个双边加速软件。实现原理是让服务器与客户端建立长期的TCP加密连接,使用独特的协议代替HTTP协议,这样可以明显减少连接延迟。另外它会缓存动态页面:考虑到大多数动态页面都包含大量相同的内容,当用户请求新的页面时,服务器只会发送变化的内容。这相当于多次Gzip压缩。
文章转载自的博客,略有改动。参考文章列表: