googleapi导致Wordpress访问速度过慢的问题 - Tobycc
63
post-template-default,single,single-post,postid-63,single-format-standard,ajax_fade,page_not_loaded,,qode-theme-ver-13.5,qode-theme-bridge,disabled_footer_bottom,wpb-js-composer js-comp-ver-5.4.5,vc_responsive

googleapi导致WordPress访问速度过慢的问题

googleapi导致WordPress访问速度过慢的问题

没想到昨天刚搭完wordpress今天就能更新点问题,今天在家尝试打开后发现速度非常慢,基本上半分钟才能打开一个网页,开始排查

1、打开云服务器下部署的discuz页面,速度很快,排除云服务器的问题和网络攻击问题

2、在服务器下,把这两天新装的两个插件从/wp-content/plugins下目录mv到临时目录,速度依然很慢,基本排除插件问题

3、chrome下F12打开调试模式,重新加载主页,发现有一个api请求一直Pending最终导致超时bad-request

查看请求详细信息,发现是请求的url是fonts.googleapi.com,估计是wordpress或主题自带的动态获取字体的功能,猜测可能是和国内请求google不稳定有关

bad-request-info

4、搜索wordpress google api相关内容,查到以下资料

http://www.chinaz.com/web/2015/0107/378419.shtml

http://blog.csdn.net/missyouzhang/article/details/30977473

http://jingyan.baidu.com/article/b24f6c82c39fd486bfe5daa8.html

5、按照查到的资料,将 /wp-includes/script-loader.php中的googleapi替换成国内的useso,重试,速度还是很慢。调试模式发现还是有googleapi的请求

6、在wordpress根目录执行grep googleapi ./* -r查询所有代码,发现很多代码中都有请求googleapi,其中当前所用的主题下/library/functions/functions.php也请求了fonts.googleapi.com,依然替换成useso,重试速度恢复正常,秒打开。

7、为了防止其他地方googleapi在以后引起的问题,直接在wordpress根目录下执行

sed -i "s/googleapi/useso/g" `grep googleapi ./* -rl`

将所有的googleapi替换成useso

 

update:更新后调试模式发现请求的url已经变成了fonts.useso.com,但请求立刻返回失败了,不过表面看不出什么明显的区别。手动请求api地址,提示协议错误。测试后发现/wp-includes/script-loader.php中请求的是https://fonts.useso.com,修改为http://fonts.useso.com重新在调试模型下打开,发现请求成功,应该是国内的库还不支持加密的https。

同理在wordpress根目录下执行以下命令将useso的三个地址协议从https改成http

sed -i "s/https:\/\/fonts.useso/http:\/\/fonts.useso/g" `grep https://fonts.useso ./* -rl
sed -i "s/https:\/\/ajax.useso/http:\/\/ajax.useso/g" `grep https://ajax.useso ./* -rl`
sed -i "s/https:\/\/libs.useso/http:\/\/libs.useso/g" `grep https://libs.useso ./* -rl

不过对速度没有明显影响,也看不出明显差别,可以不做此修改。

 

8、今天在公司打开一直没问题应该是开了vpn。昨天在家打开页面时,速度很快,可能是googleapi只是不稳定地间歇性无法访问。