加快WordPress后台响应速度的特别方法

AI 智能摘要
自从搬主题将主机从CentOS迁移到Ubuntu后,WordPress的后台响应速度就一直很慢,原来在CentOS环境下各种访问极速的情况都不存在了,搬主题还以为是不是Ubuntu对LiteSpeed的支持存在兼容问题。

自从搬主题将主机从CentOS迁移到Ubuntu后,WordPress的后台响应速度就一直很慢,原来在CentOS环境下各种访问极速的情况都不存在了,搬主题还以为是不是Ubuntu对LiteSpeed的支持存在兼容问题。

WordPress的响应速度慢具体表现在哪里呢?

  • 登陆WordPress后台很慢,大概要20秒左右。
  • 点击WordPress后台的【仪表盘】、【外观】、【插件】、【设置】要15秒才有反应,才能正常跳转。
  • 安装或卸载WordPress主题、插件很卡,基本会导致页面崩溃。
  • 点评及批准评论要5秒以上。
  • 修改文章后点击更新经常要5秒以上。
  • 将图片上传到对象存储要10秒。

以上搬主题把自己遇到的一些响应缓慢的现象列了出来,除了以上这些慢的,后台其他的【文章】、【页面】及各种主题及插件的设置页面,打开速度正常。并且网站前台打开速度也正常。但是一直涉及到与后台交互数据的时候,就出现很慢的情况了。

搬主题排查该问题排查了很久,包括对数据库的编码索引进行了优化、对PHP的各种设置进行了优化、对Linux文件传输进行了优化等等,哪怕搬主题更换了WordPress主题,禁用所有插件,又开启数据库慢查询来定位问题等,最终问题依旧。

到底问题存在哪里?

偶然的一次机会,搬主题上传图片到对象存储要10多秒接近崩溃后,然后在检查log错误日志的时候,发现日志里有一个PHP错误提示:

PHP Warning: file_get_contents(): php_network_getaddresses: getaddrinfo for cdn.banzhuti.com failed: Temporary failure in name resolution in….

搬主题通过查询,发现报错的原因是因为域名解析及DNS网络问题导致的,于是登陆ssh工具,用ping指令来ping这个对象存储的域名,发现没有任何响应。难道是云主机的ping命令出问题了?过了30秒后,又ping,发现又正常了,非常奇怪。

在检查防火墙及ping指令的安装问题都正常后,于是搬主题就考虑DNS的问题。查看主机的DNS后,发现原来主机默认自带的首选DNS为1.1.1.1,备用DNS为8.8.8.8。

1.1.1.1是Cloudflare旗下的公共免费DNS,Cloudflare DNS 是号称全球最快的 DNS 服务 (当然国内不算在全球范围内 >_<), Cloudflare是全球最大的 CDN / DDOS 防护服务提供商之一。虽然很牛,但是在国内的运营商基本把这个ip限制了,经常出现无法访问的情况。

图片[1]-加快WordPress后台响应速度的特别方法-搬主题

于是搬主题将默认的DNS改为了同为腾讯云的免费DNS如下:

(腾讯公共DNS,推荐前两个)(119.29.29.29;119.28.28.28;182.254.118.118;182.254.116.116)

设置完成后,奇迹发生了,所有响应缓慢问题,全部解决了!!!

这里搬主题判断有可能是在点击WordPress后台的一些链接时,会产生一些域名的解析,因为主机自带的首选DNS正常无法访问,导致又切换到备用DNS,结果才会非常缓慢。改为正常的DNS后,响应速度就正常了。

这里搬主题再分享一下如果在Ubuntu里修改默认的DNS的方法。

临时修改DNS方法

如果我们临时使用的话,也可以临时修改DNS。

修改下面文件:

vi /etc/resolv.conf

加入想要修改的DNS

nameserver 1.1.1.1
nameserver 8.8.8.8

改为

nameserver 119.29.29.29
nameserver 8.8.8.8
图片[2]-加快WordPress后台响应速度的特别方法-搬主题

如果多个DNS,就一行一个,修改之后保存退出即可;此方法修改后即刻生效,但重启后失效。

永久修改DNS方法

1、修改 /etc/systemd/resolved.conf 文件

vi  /etc/systemd/resolved.conf

这里我们可以看到这些参数:

# 指定 DNS 服务器,以空白分隔,支持 IPv4 或 IPv6 位置
DNS=119.29.29.29 114.114.115.115
# 备用 DNS 服务器
FallbackDNS=8.8.8.8
# 设置搜索域名
Domains=domain.com
# 设置 LLMNR 是否激活,可用的选项有 yes、no、resolve
LLMNR=yes
# 设置 MulticastDNS 是否激活,可用的选项有 yes、no、resolve
MulticastDNS=yes
# 设置 DNSSEC 是否激活,可用的选项有 yes、no、allow-downgrade
DNSSEC=yes
# 设置缓存是否激活,可用的选项有 yes、no、no-negative
Cache=no-negative

根据需要修改 resolved.conf 文件中的DNS,然后保存。
2、重启 systemd-resolved 服务

systemctl restart systemd-resolved

3、设置开机启动 systemd-resolved 服务

systemctl enable systemd-resolved

4、备份 systemd-resolved 托管文件 resolv.conf

mv /etc/resolv.conf /etc/resolv.conf.bak

重新生成。

ln -s /run/systemd/resolve/resolv.conf /etc/

以后大家如果遇到WordPress后台响应速度缓慢的情况,不妨排查一下主机的DNS是否设置正常,有可能是影响自己速度的重要原因呢。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容