最近,我在管理文章发布时遇到了一个棘手的问题,即定期发布功能频繁失败。出于好奇,我检查了防火墙的威胁报告,发现网站服务器的IP地址被大量封锁。这让我十分困惑。进一步研究后,我发现许多被拦截的请求源自wp-cron.php,特别是那些带有”doing_wp_cron=**********.****************************”参数的请求。这表明,服务器环境和网站文件本身并无异常,但可能是由于CDN或防火墙对内部wp-cron请求的误判导致了问题。
解决这个问题的方法有两个主要方向:
1. **白名单策略**:如果可能的话,你可以在CDN或防火墙上设定规则,将/wp-cron.php添加到白名单中,允许其不受限制地运行。然而,某些免费的CDN或防火墙服务可能不提供此类精细的控制选项,或者规则配额有限。
2. **服务器主机回源策略**:这是一种常见的解决办法,尤其是当你无法调整CDN或防火墙设置时。通过主机回源,你可以让wp-cron直接访问服务器,绕过可能造成阻碍的中间层。具体操作如下:
– 在Windows服务器上,打开C:\Windows\System32\drivers\etc\hosts文件,在文件末尾添加一行,输入你的服务器IP地址和域名,两者之间用空格隔开,然后保存。
– 对于Linux服务器,编辑/etc/hosts文件,同样在文件末尾新增一行,输入服务器IP地址和域名,以空格分隔,保存更改。