自从搬主题将主机从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后台响应速度的特别方法-搬主题](https://cdn.banzhuti.com/2024/04/20240424232202486.png)
于是搬主题将默认的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后台响应速度的特别方法-搬主题](https://cdn.banzhuti.com/2024/04/20240424232207925.png)
如果多个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-resolved3、设置开机启动 systemd-resolved 服务
systemctl enable systemd-resolved4、备份 systemd-resolved 托管文件 resolv.conf
mv /etc/resolv.conf /etc/resolv.conf.bak重新生成。
ln -s /run/systemd/resolve/resolv.conf /etc/以后大家如果遇到WordPress后台响应速度缓慢的情况,不妨排查一下主机的DNS是否设置正常,有可能是影响自己速度的重要原因呢。























暂无评论内容