首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PHP set_time_limit()防止nginx 504网关超时

使用PHP set_time_limit()防止nginx 504网关超时
EN

Stack Overflow用户
提问于 2013-04-15 01:47:03
回答 10查看 282.4K关注 0票数 135

当我的PHP脚本运行时间比平时长时,我从nginx收到504超时消息。set_time_limit(0)似乎不能阻止这一点!在nginx上运行php5-fpm不工作吗?如果是这样,设定时限的正确方式是什么?

错误:

代码语言:javascript
复制
504 Gateway Time-out
nginx/1.2.7
EN

回答 10

Stack Overflow用户

发布于 2013-07-07 18:48:31

有几种方法可以设置php-fpm的超时。在/etc/php5/fpm/pool.d/www.conf中,我添加了下面这一行:

代码语言:javascript
复制
request_terminate_timeout = 180

另外,在/etc/nginx/sites-available/default中,我将以下行添加到有问题的服务器的location块中:

代码语言:javascript
复制
fastcgi_read_timeout 180;

整个位置块如下所示:

代码语言:javascript
复制
location ~ \.php$ {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_read_timeout 180;
    include fastcgi_params;
} 

现在只需重新启动php-fpm和nginx,应该不会再有超过180秒的请求超时。

票数 211
EN

Stack Overflow用户

发布于 2013-10-11 01:41:50

试试这个link,它有一个更好的解决方案来解决这个问题。因此,步骤如下:

  1. 打开位于/etc/nginx目录中的nginx.conf文件。
  2. 将以下代码添加到http {部分下:

client_header_timeout 3000;client_body_timeout 3000;fastcgi_read_timeout 3000;client_max_body_size 32m;fastcgi_buffers 8 128k;fastcgi_buffer_size 128k;

注意:如果已经存在,请更改according.

  • Reload Nginx和php5-fpm的值。

$ service nginx reload $ service php5-fpm reload

如果错误仍然存在,请考虑增加值。

票数 60
EN

Stack Overflow用户

发布于 2013-04-15 01:51:32

您不能使用PHP来阻止nginx发出的超时。

要将nginx配置为允许更多时间,请参阅proxy_read_timeout directive

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16002268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档