脚本在“504 网关超时”后继续执行

Dam*_*nic 2 php http-status-code-504

我在 nginx+apache 下运行这个脚本。它将大数据包(分成几部分)发送到远程服务器,循环调用 cURL 执行。对我来说奇怪的是,超时后我在浏览器(队长)中收到 504 错误,但脚本仍然继续运行!

我已经测试过它 - 脚本正在发送我需要它发送的所有数据,所以从技术上讲,这不是问题。但我认为任何像这样的不寻常的事情都可能在未来产生后果。

我希望更有经验的开发人员能够分享有关此问题的任何知识。

jra*_*ede 5

如果达到最大执行时间(在 Apache 中默认为 30 秒),服务器会发送 504。然而该脚本仍然在后台运行——它只是停止向客户端发送数据。如果您预计脚本的运行时间超过最大执行时间并希望查看它返回的数据,您应该考虑增加服务器上的最大执行时间设置或在其他地方运行脚本并通过套接字连接向浏览器报告或间隔轮询。

另一方面,你为什么使用 nginx 和 apache?或者你的意思是它对两者都做同样的事情?