前段时间将博客从阿里云迁移到腾讯云,运行一段时间都是正常的,近段时间也没升级和更新wordpress,我发现评论文章后博客卡顿响应时间很长且不跳转刷新页面。
开始以为是有插件bug,于是停用了很多不相干的插件,问题依旧。最后百度下问题所在,都建议是关闭wordpress讨论设置里的“发送电子邮件通知我”。
但感觉不是解决问题的办法,因为博客现在很少打理,所以需要通过邮件及时的通知我来回复评论和留言。
关闭“发送电子邮件通知我”后,评论响应时间恢复正常没有出现卡顿。所以可以断定是邮件函数上出了问题,但是最近也没更新过主题和wordpress程序,无法判断是否是源码有问题,我就查看了下
PHP的慢日志(查看PHP慢日志技巧自行百度),发现果然有卡顿停止响应的日志产生。
根据日志,基本可以断定是wordpress无法通过smtp发送邮件所致,导致访客评论我博客,PHP卡顿停止响应超时产生慢日志。
百度了几次都没解决,最后看到一条阿里云、腾讯云禁止25端口通信的新闻才恍然大悟,是不是云服务防火墙默认禁止了25端口导致发送邮件失败,于是我顺着这个思路,登录了云服务器的后台。
看到了传说中的解封选项,申请了解封。
解封后测试下,问题依旧。
最后进云服务器安全组进行排查,发现25端口没有添加,应该现在安全组默认是禁止25端口向外发送数据。
添加25、465端口出站允许的规则,wordpress测试评论恢复正常,响应时间也恢复正常,邮箱也能正常接收评论邮件,到此问题成功解决。