最近由于某些原因,需要搬迁服务器,同时也更换了服务器面板,因此遇到这个问题。(其实说白了就是服务器到...
最近由于某些原因,需要搬迁服务器,同时也更换了服务器面板,因此遇到这个问题。
(其实说白了就是服务器到期,宝塔面板太贵,都要花钱,现在做站又不赚钱)
使用新的面板,某些功能免费了,开启了网站防火墙和文件保护,但是部分插件在这种情况下无法运行,没办法,只能先给文件目录开个白名单
解决了一部分的插件使用问题。
随后,一个定时执行任务的插件始终无法正常使用,因为使用了PHP的异步多线程访问的方式。
无论怎么设置防火墙和文件保护,均无法解决这个问题。
但是主动访问确可以正常运行。
最后检查发现:
Http状态码499(Client Closed Request)
本身就是:客户端主动端口请求连接时
因此判定可能是NGINX配置的原因,导致不将该异步请求代理给上游,因为异步处理,没有客户端操作,因此才记录了499的错误
那么解决这个问题,就需要调整Nginx配置。
我们在Nginx配置中添加:
fastcgi_ignore_client_abort on;
使得Nginx将 NGINX _FastCGI 忽略客户端中断
这样,无论客户端是否断开,都会将请求返回给上游,并记录相应的信息。
当然,这个方案,只是为了解决这个问题而处理的一个结果。如果涉及到其他安全运维问题,请酌情考虑并使用其他方式自行处理。