使用CDN配合轻量应用服务器给网站加速

2022-07-13 15:18:18 浏览数 (3)

首先准备好轻量应用服务器、域名,将域名解析到服务器公网ip,如果使用境内服务器需要提前备案域名,否则解析会被阻断。

我的域名 48zhai.cn 已经通过备案,境内外服务器都可以用,这里我选了一台闲置的广州2核2G5M的轻量机器,为了节约时间我使用了宝塔镜像,并且安装wordpress作为CMS,详细过程不再赘述。

安装网站后在浏览器打开网站,通过浏览器的DevTools可以看到首页加载耗时13秒,这对任何网站来说都是致命的灾难,糟糕的用户体验很大程度上可能会造成大量用户的流失,同时也会给seo带来不利的影响,最终给网站造成不可估量的损失。

通过分析我们可以发现请求数量大都是js、css和图片文件,对比发现较大的文件往往是图片、视频等,少则几十上百k,大则几m十几m,如此数量的媒体文件给本不富裕的带宽雪上加霜。

那么如何解决这个问题呢?腾讯云CDN加速可以帮我们解决,通过CDN可以减少用户访问消耗带宽较大的文件对服务器造成的压力,同时CDN服务会将你网站的文件分发到全国各个节点缓存起来,供用户就近访问。

首先开通CDN服务,系统每个月会赠送10GB中国境内的流量包,对于流量不大的网站来说是完全够用的。

开通之后就需要添加加速域名了。域名配置这里我们选择中国境内,这样CDN加速才会对中国大陆地区生效。加速域名填写需要加速的域名,此处为 www.48zhai.cn ,这里需要注意的是 48zhai.cn 是主域名,www.48zhai.cn 是二级域名,是两个不同的域名,对于CDN来说就是两个不同的网站。

源站配置则是配置被加速对象的相关信息,此处我是自有网站就选择自有源,协议跟随服务器,地址填写服务器公网ip地址,回源host填写自己的域名。

其他配置我们暂时使用默认配置就行,保存配置后等待CDN生效,再次访问网站,通过devtools可以看到我们请求的域名所解析的ip地址已经不是服务器的公网ip地址了,这样就表示CDN已经生效了。

也可以在腾讯云控制台查询该ip是否是腾讯云CDN节点ip。

再次查看网站加载耗时仅为814毫秒,相对于第一次来说提升了15倍,几乎是质的飞跃。

配合良好的CDN设置可以最大限度利用CDN为我们提供良好的加速效果,下文中仅选择涉及安全以及对加速有效果的功能项,未提到的功能请自行配置。

访问控制:防盗链配置可以防止别人盗刷你的cdn流量,将域名和服务器ip添加进白名单,并且不允许空referer访问。

单IP访问限频可防御部分CC攻击,但也可能会影响网站访问,应该根据实际情况调整阙值。

缓存配置:

缓存可以进一步提高网站加载速度,在节点缓存过期配置中新增规则。

  • 文件类型-内容:“.jpg;.png;.jpeg;.gif;.bmp;.mp3;.mp4;.flv;.webp;.swf;.css;.js”,刷新时间:1天。
  • 文件类型-内容:“php;jsp;asp;aspx”,不缓存。因为php、jsp、asp、aspx都是动态文件,如果设置缓存的时间,会导致网站出错。
  • 对于html文件不建议缓存,在缓存有效期内修改了文件,可能会造成访问到的文件不是最新的,但是如果你的html内容相对比较固定并且长时间不会改动,也可以考虑开启,缓存时间自行评估。

可以通过刷新预热手动刷新指定内容的缓存。

HTTPS配置

  1. HTTPS建议开启,腾讯云可以直接申请免费证书。
  2. HTTP2.0建议开启,HTTP2支持TCP多路复用,减少网站加载时间。
  3. OCSP装订建议开启,显著提高了 TLS 握手效率,节省了用户验证时间。
  4. QUIC视经济情况决定是否开启(需要单独付费),QUIC能够保障网络安全性,减少传输和连接时的延时,避免网络拥塞,同时保障客户端访问 CDN 节点时数据传输的安全性,提升访问效率。

高级配置:

用量封顶配置可以预防DDOS类攻击造成流量异常扣费,根据配置关闭CDN服务或直接回源。

智能压缩可以让 CDN 在返回内容时会按照设定规则对资源进行 Gzip 、 Brotli 压缩,有效减少传输内容大小,节省开销。

除了正确配置CDN可以起到一定加速效果之外,我们也可以对应用进行优化起到加速的效果。由于我使用的环境是PHP,所以选择OPCache配合Mencached,两个插件都能牺牲一定内存换取访问速度,OPcache 用于加速代码访问,memcached 用于加速数据访问,它们功能不同,完全独立,我们在wordpress中安装并启用这两个插件。需要注意的是CDN和缓存插件都需要用户访问并命中后才能生成对应的缓存,这个时候才能起到加速的效果,实际操作中可以多刷新几次网站,通过浏览器控制台显示的数据可以判断缓存是否生效。

网站加载速度进一步降低到580毫秒,控制台大小列显示文件来自内存缓存。

另外,对于小带宽或者境外的服务器还可以使用google的bbr算法改善tcp拥堵情况。bbr在低内核版本的系统上需要手动开启,可以参考我的另一篇文章:CentOS7安装新版内核和开启BBR加速

好了,欢迎大家来我的网站 https://48zhai.cn/ 体验一下~

0 人点赞