网站加载中的TTFB时间太长解决办法

4.2
(18)

不知道各位有没有好奇过,为啥自己网站加载很慢。而通过F12发现,ssl加载速度正常,网页下载速度正常,唯独一个TTFB时间超级长,甚至高达一秒以上。通俗点说,TTFB就是你服务器生成当前页面所需要的时间。很明显,如果想要加快TTFB时间,就需要针对服务器进行一系列优化。今天,我们就以WordPress为例,告诉你到底如何优化服务器,可以极大程度的缩小TTFB时间。

TTFB是发出页面请求到接收到应答数据第一个字节所花费的毫秒数

我们知道WordPress是由php查询数据库而动态生成的页面,即动态页面。然后包含一些htmlcssjs、图片等各种资源的加载过程。如果你想缩短这个TTFB时间,那么就需要缩短php解析时间、缩短数据库查询时间。html页面优化,这个很明显,如果你的页面没那么大,那页面生成时间会很快。

网站加载中的TTFB时间太长解决办法

这里顺便说下,浏览器加载网页的整个过程:

DNS查找服务器地址-https证书验证-服务器解析网页-浏览器下载网页-浏览器下载网页内各项资源。

事实上,TTFB时间还跟服务器资源有一定关系,比如服务器访问量过大,那么就有可能造成请求被堵塞,这个又需要另一种服务器优化方式来解决。

下面,我们开始分别讨论如何解决TTFB时间过长的问题(本文仅提供思路,以及个别已经写好的教程):

加快PHP解析过程

这一步你只需要在PHP里添加Opcache扩展即可,它会自动缓存你的php解析结果。如此,用户每次访问网页,有些内容就不需要每次都实时解析,而是直接利用opcache获取php的解析结果缓存。安装也很简单,直接宝塔后台搜索安装即可,无需任何设置。如果你没用宝塔,那就自己去找找怎么开启的方法吧。

网站加载中的TTFB时间太长解决办法

数据库查询缓存

如果用户每次访问你的网站,php都要从数据库里查询字符,有些页面甚至高达200次查询。那么这个速度确实会受到影响,而且数据库进程占用系统资源也会很高。一般,可以通过redis或者memcached来达到缓存数据库查询的结果。我这里比较推荐memcached,相关教程可以点击链接访问:WordPress使用Memcached缓存数据库查询结果

网站加载中的TTFB时间太长解决办法

到此,基本上动态页面生成的时间已经有所缩短。如果你的WordPress网站经过这两个步骤,还是很慢,你就要考虑是不是主题或者某个插件的问题导致了。

页面优化整合

这一步,你需要下载一个插件,可以整合页面内CSSJShtml资源的插件,比如autoptimize(国内服务器用这个插件,它的设置页面会有点慢,因为它要链接它的订阅服务,设置界面内右侧的类似广告性质的东西,可以通过修改php文件,加快速度),或者其他类似插件。

网站加载中的TTFB时间太长解决办法

当然,其实这一步作用还是挺大的,它可以压缩CSSJShtml,并且整合碎片资源文件。

动静分离

这一步,主要是把图片放在云存储或者其他地方,防止过多请求服务器,毕竟都是小宽带,经不起这么消耗的。我这里用的是又拍云,相关插件使用的是:WPUpYun(又拍云云存储插件),加入又拍云联盟,每年都会送点流量的,小站足够你用了。

网站加载中的TTFB时间太长解决办法

静态页面缓存

这一步就是锦上添花了,使用WP Super Cache等缓存插件,可以把动态页面直接缓存成静态页面。相当于,把WordPress网站转换为html静态页面,体验会更上一层楼。这里,具体的,可以参考我之前写的教程:WP Super Cache缓存插件详细设置教程WP Super Cache里有个开启预压缩的设置,记得开启,那个就是gzip压缩。如果你不想使用这个插件,也要记得自己开通gzip压缩功能。

网站加载中的TTFB时间太长解决办法

基本上WordPress层面,能做的就这么多了。下面再介绍点容易被忽略的加速手段吧

服务器开启BBR,防止请求阻塞

这是Google开发的算法,用于解决服务器短时间内的请求阻塞问题,可以理解为它可以减小服务器的丢包率。而这个BBRLinux系统内核4.9以上会自带,但是需要你去开启以下,基本的开启代码如下:

lsmod | grep bbr
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

如此,就开启完成了,可以通过以下命令验证是否开启成功:

lsmod | grep bbr

如果得到的结果包含bbr,那么就可以了。如果还是不懂,可以参考我之前写的两篇教程:Centos 8.2升级系统5.9内核及bbr的开启 以及Centos7新版内核安装bbr教程

网站加载中的TTFB时间太长解决办法

终极优化

您需要付费解锁才能查看当前内容

黄金会员黄金会员¥2.50
钻石会员钻石会员¥1.00
已付费?登录刷新

共计18人评分,平均4.2

到目前为止还没有投票~

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

文章目录

原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/1609.html

(9)
微信公众号
古哥的头像古哥管理团队
上一篇 2021年02月01日 19:29
下一篇 2021年02月02日 19:48

你可能感兴趣的文章

发表回复

登录后才能评论

评论列表(10条)

  • 太耀的头像
    太耀 2021年02月01日 23:33

    前些天刚和古哥聊过这个问题,没想到古哥就写出来了,特赞。
    其实我也有点小想法,应该还可以加入cnd来加速不同地域的反应速度。
    从autoptimize排除脚本哪儿,古哥能复制发出来一下嘛。

    • 古哥的头像
      古哥 2021年02月01日 23:35

      @太耀每个人这里都不太一样,有些插件不能合并js,所以要排除。还有一些是针对管理员后台的css也要排除(前端顶部管理员工具条那个)。我的内容如下:
      js:wp-includes/js/dist/, wp-includes/js/tinymce/, js/jquery/jquery.js, wp-content/plugins/enlighter/cache/, js/jquery/jquery.min.js
      css:wp-content/cache/, wp-content/uploads/, admin-bar.min.css, dashicons.min.css

    • 太耀的头像
      太耀 2021年02月02日 10:17

      @古哥古哥,justnews主题的话,可以直接抄吗?

    • 古哥的头像
      古哥 2021年02月02日 10:39

      @太耀可以的

  • 30 ℃的头像
    30 ℃ 2021年02月04日 00:27

    挺好

  • 游无穷的头像
    游无穷 2021年07月10日 20:01

    全面,给古哥点赞。不过我就是懒得折腾 ==、

  • 漫夜的头像
    漫夜 2021年11月14日 23:16

    关于这个如何操作,我将在以后的日子里,专门给各位介绍下。下图中的304即表示直接从本地获取的网页数据。

    5元已付 请问什么时候更新

    • 古哥的头像
      古哥 2021年11月14日 23:22

      @漫夜网站好久没更新了,我看下周更新一下吧。笑哭

  • 4825的头像
    4825 2023年05月13日 22:06

    白嫖怪来了。怎么能少了我。这个付费值得吗,有没能白嫖的。直接在下方评论告诉我。我在这里由衷感谢大家了!

    微信小程序
    微信公众号