cdn节点人少延迟高_如何正确配置CDN高速缓存,避免越用越慢的尴尬

越来越多的博客网站开始用到了国内的免费CDN了,比如百度云加速、360网站卫士、加速乐及云盾等等。之前我也写文章分享过国内低配置VPS的优化方案,其中提到了很多站长开启CDN加速后反而更慢的问题。

文章是这样描述的:

动态网页会越用越慢

很纳闷吧?但事实的确是这样!我们先要弄清楚这些CDN加速的原理:当用户请求我们网页时,请求会发到CDN节点上,如果是动态数据,那么CDN节点将回源站拉数据,返回给用户!也就是说数据是经过了多次转发,加上CDN节点和源站的延迟,肯定是效果不明显,而且更慢!

这就不难解释,总是有人抱怨百度云加速越用越慢,而有人却说很快了。区别就是,快的人开启了云加速的整站缓存,而慢的人只是弄了一个CDN代理转发而已。

没错,如果只是开启CDN,而不合理的设置缓存,就会越用越慢。

下面我就分享2种CDN下的配置方案。

一、动静均缓存

这也是张戈博客之前用到的方案,网站前台不管是静态还是动态,我统统缓存到CDN。那速度绝对可以飞起来。

老版百度云加速以及360网站卫士等,都可以非常简单的搞定这个事情,因为只需要直接勾上需要缓存的类型,比如一般都是让你勾选【html】 、【目录】、【首页】这3种类型,全部选上就可以了。

这里插播2条实用技巧:

①、缓存黑名单

全部选上后,整个网站不管前后台都会缓存,连后台都缓存了,那还怎么玩?所以,这些CDN肯定还会支持缓存黑名单,大部分是路径匹配的,比如360网站卫士就可以如下设置不缓存后台:

一般都是支持通配的,如果连通配都不支持,那也没必要使用了。

②、目录不缓存?

不知道有没有朋友遇到勾选了目录缓存之后,你的Wordpress网站的分类和单页面依然不会缓存,这是为什么?

其实问题在于WordPress的目录和单页面地址默认是不以斜杠/结尾的,不是一个标准的目录形式。而绝大部分CDN定义的目录是以斜杠结尾的!

有2个方法来解决这个问题:

如果CDN存在缓存白名单,那么可以设置强制缓存(略麻烦)

让WordPress的分类目录和单页面以斜杠结尾即可==>详细教程

那么,问题来了。新版百度云加速已经取消了这种简单的勾选配置!很多朋友解析到云加速后就放一边了,结果速度依然蜗牛,没有感受到飞的快感。

其实,新版百度云加速需要自己自定义规则来开启缓存!下面简单分享下WordPress在百度云加速下开启高速缓存的自定义规则,如图点击可进入设置:

同样的,根据前面的黑白名单规则,我们先定个调,一般网站应该是这样的情况:前台都缓存、后台不缓存、个别页面要缓存或不缓存。

先看下百度云加速自定义规则的说明:

提示说明: 规则自定义指对“指定URL”进行页面级规则定制(支持通配符*)。可对任意子域名、目录、甚至单个URL进行针对性的加速缓存、安全防护等配置。列表中上下关系决定优先级,靠上规则优先级高。站长可以通过点击“↑”调整优先级。新增规则优先级最低,将于30s内生效。

URL指定支持通配符*,例如

1) 对img.yoursite.com进行特定设置,需增加URL: img.yoursite.com/*

2) 对www.yoursite.com/news/ 进行特定设置,需增加URL: www.yoursite.com/news/*

3) 对www.yoursite.com所有html页面进行特定设置,需增加URL: www.yoursite.com/*.html

支持通配,这就简单了!不过免费版只支持3条规则,这个就需要我们合理斟酌一下了。

优先级从上往下依次降低,所以我们要保证不缓存的规则写到最上面,才能不会缓存规则覆盖。

根据我个人经验,一般WordPress网站设置如下3条规则即可:

①、网站后台:zhang.ge/wp-admin/*   设置为不缓存或细致缓存

②、评论分页:zhang.ge/*/comment-page-*    设置为不缓存或细致缓存

③、网站前台:*zhang.ge*    设置为前后通配都缓存

Ps:细致缓存其实就是只缓存静态文件,其中缓存时间或有效期请自行设定即可,无需按图照办。另外由于新版百度云加速现在不能对单个域名设置了,所以最后的缓存规则是前后通配,保证某些网站的二级静态域名也缓存到位。另外,这只是我个人经验推荐的配置,比如评论分页就可以根据自己的需要设置为其他页面,此处分享仅供参考!

这样设置好了之后,网站前台刷几下就可以看到效果了,当然还可以F12到network里面去看header的缓存命中情况,这就不赘述了。

二、只缓存静态

动静都缓存可以解决国内低配VPS的2个尴尬:带宽和负载。带宽问题,国内普遍小水管就不用我多说了吧。负载问题则是WordPress一直以来的诟病,刷新快一点,CPU就满了。

但是,有一些网站,本地已有缓存或者访问流量并不高,他们不想开启全静态缓存,因为会带来的各种数据不刷新问题。因此,我们如何既解决速度问题,又兼顾实时数据呢?

当然,开启CDN不进行整站缓存设置的话,大部分CDN会默认缓存静态文件,基本满足以上需求。但是某些CDN有个坑爹的规则:他会和谐某些关键词,访问有这些关键词的页面就提示违规并不显示。

如何解决这个问题?很简单,通过域名做动静分离即可。

将静态链接替换为二级域名,并开启CDN缓存。主域名则不走CDN或走CDN但不开启缓存。

将静态链接替换为二级域名应该不用我多说了吧?不会的看一下张戈博客之前分享的七牛CDN代码版即可==>传送门

主域名不走CDN也很简单,直接在解析时不开启缓存即可,也就是直接回源:

如果担心暴露IP,如果是阿里云ECS,你还可以CNAME到阿里云的WAF上(这也是张戈博客目前的做法):

走CDN开启缓存和走CDN禁止缓存应该也不用我多说了,上文都有分享规则。

如上设置后,你的网站的速度也会很快,当然前提是你的动态部分不卡才行。如果网站还是比较卡,但是你有不想开启纯静态导致数据不刷新,那么

①、如果是独立主机,可以考虑开启redis或opcache等php动态缓存

②、如果是虚拟主机,可以安装 DB Cache Reloaded Fix这类数据缓存插件

当然,如果你觉得还是不够快,那么推荐和张戈博客一样,开启Nginx的fastcgi缓存!

三、总结下区别

方案一 和 方案二 到底有什么区别呢?

方案一 是将动态和静态都强制缓存到CDN,这样就算本地不开启任何缓存,用户的访问速度也是杠杠的。如果想要给搜索引擎蜘蛛一样的速度,那么本地最好也开启一下静态缓存。

方案二 则是只缓存静态数据,动态数据依然请求到源服务器。这样做的好处是既解决了带宽尴尬,又解决了前台数据不能实时刷新的问题。因为,占带宽的主要是静态文件,而非html代码。我们将大体积的静态文件托管到CDN加速,源服务器就只要负担体积很小的html代码流量了,速度自然就快了!

当然,这样做很容易就出现了前文提到的开启CDN反问变慢的尴尬。。。解决办法也很简单,本地开启一下动态缓存即可。

张戈在帮不少站长做网站优化时,设置过百度云加速,发现大部分站长都不会设置,然后还对我说为啥你弄过之后就飞起来了,我当初使用云加速就卡出翔?其实就是不会设置而已!所以,今天我分享出来,弱弱的为CDN正名,那些用过之后骂CDN垃圾越用越慢的人,先自己好好反省一下吧!

好了,本文罗里吧嗦说了一大堆,有需求的自然会豁然开朗,没需求的就会如同嚼蜡了。我敢说,如果你看懂了这些设置技巧,那么使用任何CDN都会信手拈来,轻松应付!

总之一句话,张戈写文章的期望不高,希望对有需求的人有所帮助就好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五月份哪里有有计算机考试,2021年5月全国计算机等级考试报名时间

5月全国计算机等级考试时间为5月29日至30日(第61次),报名时间约为考前1个月。科目调整及软件说明(一)从3月考试起,停考二级Visual Basic语言程序设计(科目代码26);新增二级WPS Office高级应用与设计(科目代码67)、三级Linux应用与开发技术(科…

voip和rtc_为什么开发WebRTC与VoIP开发不一样?(上)

作者:Tsahi Levent-Levi(原文链接)翻译:刘通原标题:Why Developing With WebRTC is Different than VoIP Development?让我从此处开始说起:但是在最重要的几个方面上WebRTC与VoIP有着区别:1. 企业用它来实现点子的方式…

量子计算机通用程序,量子计算机程序具有“通用性”?基于拓扑量子纠错码的量子计算机...

原标题:量子计算机程序具有“通用性”?基于拓扑量子纠错码的量子计算机不管量子计算机的内部是由什么组成,量子计算机的快速计算都可以归结为应用于量子比特的简单指令序列,即量子计算机内部的基本信息单位。无论这台计算机是由离…

php 加载redise_PHP Redis扩展无法加载的问题解决方法

最近在工作中需要使用PHP访问Redis,从https://github.com/phpredis/phpredis下载了phpredis,并且按照官方的说明进行了安装phpize./configure [--enable-redis-igbinary]make && make install但是在重启php-fpm的过程中,发生了如下的…

指纹机和计算机无法连接,考勤机怎么连接到电脑?考勤机连接电脑之后操作指南!...

考勤机,主要是用来将员工的出勤基本情况记录以及统计下来的机器。同时能够根据员工的工作上下班时间,详细地统计出加班时间、早退、迟到、旷工等出勤的情况。我们在统计具体的数据情况时候,就需要将考勤机与电脑进行联机,这样更加…

pentile 子像素_三星和索尼OLED子像素排列方式对比 有哪些差异?

目前已经有很多 VR 头戴设备在市面上进行发售,不同的厂家都因为价格定位的差异而选择不同的硬件解决方案。在其中最影响体验效果的自然是下面,我们就以三星和索尼 的 OLED 产品为例进行浅要分析。三星 OLED 对比索尼 OLED 到底哪个屏幕人们普遍认为分辨率…

计算机网络构成ppt,计算机网络体系结构ppt课件.ppt

文档介绍:船舶局域网技术及应用王宁轮机工程学院船电教研室HP:**********E-mail:n.wang.***2011年9月N.Wang09/2011*第3章计算机网络体系结构N.Wang09/2011*第3章计算机网络体系结构开放系统互连参考模型(OSI/RM)TCP/IP体系结构基本概念各层基本功能基本概念各层基本…

canvas转盘-拯救选择困难

转盘-拯救选择困难效果图简介代码效果图 简介 每到饭点就纠结吃什么,不如直接roll点。 在词条框中输入选项,选项用逗号(中英都可)隔开。点击设置词条,会根据词条(没有输入则获取代码中的默认词条&#xf…

tcping计算机端口,TCPing 服务器端口测试,端口阻断检测

介绍平时我们Ping服务器的IP,只是ICMP协议传输获得的延迟,而某些IDC会把ICMP的延迟优化的很棒,实际上一走TCPing 就暴露了;而且我们使用过程中主要是TCP协议传输数据,所以可以测试一下TCPing得到的延迟;另外因为TCP协议的握手步骤…

ue4中在物体上加ui_UE4 物体位置同步相关源码分析浅谈

前言多图, 不想在源代码写注释, 不想贴代码块, 看的不清楚版本4.21混4.22, 区别不大文章属于旧有文章搬运, 之前在csdn上面2019.10.27修改一版物体位置信息同步, 或者说物体的移动同步, 是一个很大的坑, 从个人目前魔改UE4位置同步后, 感觉至少要考虑以下几点位置信息的数据结构…

计算占比并保证百分比和为1

计算占比并保证百分比和为1常用场景代码常用场景 用于动态计算页面元素的百分比占比可视化中扇形统计图的显示数值修正 代码 /*** 计算数组中各项的占比,保证百分比和等于1* param arr 需要计算百分比的数组,传入时必须降序排序* param precision 精度 比如 4 …

tomcat配置自动服务器地址,修改eclipse部署tomcat时服务器部署地址

有时候我们在eclipse部署web项目至本地的tomcat但在webapps中找不到一、发现问题在eclipse中新建Dynamic Web Project,配置好本地的tomcat并写好代码后选择Run on Server,但运行后发现在tomcat的安装目录下的webapps并没有出现所建立的工程名字。二、验证很明显项目…

linux ns级定时器_linux用户空间获得ns纳秒级时间示例

一、引言我们在测试程序的性能的时候往往需要获得ns级的精确时间去衡量一个程序的性能,下面介绍下linux中用户空间获得ns级时间的方法二、用户空间获得ns级时间使用clock_gettime函数,函数原型如下:long sys_clock_gettime (clockid_t which_…

Prime算法生成迷宫

prime迷宫生成结果展示算法解析实现代码结果展示 算法解析 参考链接 Prime迷宫生成算法的原理: (1)初始地图所有位置均设为墙 (2)任意插入一个墙体进墙队列 (3)判断此时墙体是否可以设置为路(判断依据在于上下左右四个位置是否只有一个位置是路) (4)若设置为路&…

wifi密码公式计算机,求一些高数公式,做wifi密码用?

满意答案thyk72832018.06.08采纳率:55% 等级:13已帮助:8612人1)∫kdxkxc2)∫x^udx(x^(u1))/(u c3)∫1/xdxln|x|c4) ∫a^xdx(a^x)/lnac5)∫e^xdxe^xc6)∫sinxdx-cosxc7)∫cosxdxsinxc8)∫1/(cosx)^2dxtanxc9)∫1/(sinx)^2dx-cotxc10)∫1/√…

canvas简单五子棋

canvas简单五子棋效果思路代码效果 思路 canvans 绘制棋盘&#xff0c;绘制时候边缘预留棋子位置监听点击事件绘制落子并记录到字典中获胜判定&#xff0c;在四个方向上检测是否有足够数量的连贯棋子 代码 <!DOCTYPE html> <html lang"en"> <head…

unet作为服务器不显示画面,UNet:无法生成服务器对象(不使用NetworkManager)

我m playing around with Unity 5的网络HLAPI . I dont want to use the NetworkManager &#xff0c;因为我没有t want to pay for Unity的多人游戏服务(Matchmaker和Relay服务器) .当客户端连接到服务器时&#xff0c;我正在尝试在客户端上生成播放器 . 我可以让客户端正确连…

viewBox视图缩放(1)

文章目录前言一、案例解析前言 svg 的viewBox 可以重新定义视口的显示范围&#xff0c;通常表现为平移&#xff0c;缩放内容&#xff0c;之前测试的一直是viewBox 和viewPort 之间的等比缩放&#xff0c;后来发现不等比情况与认知有些出入&#xff0c;如下 <svg width&quo…

sklearn svm如何选择核函数_文本挖掘篇|利用SVM进行短文本分类

何为数据挖掘&#xff0c;顾名思义就是从大量数据中挖掘或抽取出知识。在实际中&#xff0c;进行数据挖掘的数据不仅仅有数值型数据&#xff0c;还有图片型数据&#xff0c;文本型数据等。而所谓文本挖掘&#xff0c;就是从大量文本数据中&#xff0c;提取出对信息使用者有价值…

svg 折线添加新的折点

问题 现有已知折线 有多段&#xff0c;当双击折线的时候&#xff0c;需要将该双击的位置点Q 添加到折线上&#xff08;排除端点情况&#xff09;&#xff0c;如何去判断Q要添加在折线的哪一段&#xff0c;或者Q分割了折线的哪一段&#xff1f;&#xff1f; 分析 方式1 一开始…