禁用特定Nginx端口/文件夹的网关超时

如何通过特定的端口或简单的指定文件夹来禁用nginx超时。 无论哪一个更容易。

基本上我有一些脚本需要执行很长一段时间,网关超时阻止它们完成。

这里有两个指令,一个是在这里描述的nginx fastcgi_read_timeout ,另一个是在php-fpm.conf reqest_terminate_timeout ,你可以设置为0来禁用超时。

在nginx中将fastcgi_read_timeout设置为任意大的值,就像我在第一个链接中回答的那样,你可以在任何特定的location设置它。

通常情况下,如果你有脚本需要更多的时间,有一些解决scheme。

  1. 你可以增加fastcgi_read_timeoutreqest_terminate_timeout 。 但问题是你不应该把价值太高。 如果你有很多进程阻塞对方,他们会打开很长一段时间,而且你的服务器可能无法再传送你的内容。

  2. 我更喜欢的是不要在Web服务器上执行长时间运行的脚本。 例如,使用命令行并使用cron运行脚本。 通常情况下,Web服务器不是一个很好的方法来执行长时间运行的脚本。

在几个月之前,我遇到了同样的问题,我们已经改为php-cgi,并有一个脚本运行在wget上。 我已经改变了使用CLI运行的脚本。