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

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

如何在通过特定端口或仅通过指定文件夹访问时禁用 nginx 超时。无论哪种方式都比较简单。

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

答案1

这里涉及两个指令,一个是 nginx 中fastcgi_read_timeout描述的这里,另一个是在 php-fpm.conf reqest_terminate_timeout,您可以将其设置为 0 以禁用超时。

在 nginx 中将fastcgi_read_timeout其设置为任意大值,正如我在第一个链接中回答的那样,您可以在任何特定的内部设置它location

答案2

通常,如果您的脚本需要更多时间,那么有几种解决方案。

  1. 您可以增加fastcgi_read_timeoutreqest_terminate_timeout。但问题是您不应该将值设置得太高。如果您有很多进程相互阻塞,它们会长时间打开,您的服务器可能无法再提供您的内容。

  2. 我更倾向于不要在 Web 服务器上执行长时间运行的脚本。例如,使用命令行并使用 cron 运行脚本。通常,Web 服务器不是执行长时间运行脚本的好方法。

几个月前我也遇到过同样的问题,我们改用了 php-cgi,并且有一个通过 wget 运行的脚本。我使用 CLI 更改了正在运行的脚本。

相关内容