nginx 504 Gateway Time-out如何处理

今天程序在执行一项excel导出任务的时候 出现了nginx超时的提示

nginx 504 Gateway Time-out

排查过程:

查看该任务 发现内容是一个数据量20000条信息 每条信息有50个字段 在执行导出为excel的时候 出现了该问题

执行时间大概在10分钟左右就出现超时

分析:

Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI
通常以下几种情况会导致这个问题:
1.程序在处理大量的数据,或者有死循环之类的问题
2.创建数据库之类的连接因为某些原因连接不上,然后没有超时失败的机制,导致一直在创建连接
3.程序中有一些http请求,这些请求执行时间过长,导致超时

分别查看nginx及php的相关配置查看timeout具体参数

找到nginx配置文件

#修改Nginx配置:
fastcgi_connect_timeout 1200s;#原设置为300s
fastcgi_send_timeout 1200s;#原设置为300sfastcgi_read_timeout 1200s;#原设置为300sfastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;

这里最主要的设置是前三条,即

fastcgi_connect_timeout #同 FastCGI 服务器的连接超时时间,默认值60秒,它不能超过75秒;
fastcgi_send_timeout #Nginx 进程向 FastCGI 进程发送 request ,整个过程的超时时间,默认值60秒;
fastcgi_read_timeout #FastCGI  进程向  Nginx  进程发送 response ,整个过程的超时时间,默认值60秒;

php配置文件

php.ini
max_execution_time = 300s;PHP 脚本的最大执行时间,但是,在 php-cgi(php-fpm) 中,该参数不会起效。
php-fpm
request_terminate_timeout = 0; #设置单个请求的超时中止时间.设置为0 即一直执行下去直到程序结束 不会超时

修改完上述设置之后 再次执行发现没有出现504超时提示,但是页面空白,并没有文件导出。应该还是php在执行过程中超时

没办法 查看php代码并没有发现有执行时间的设置即:set_time_limit

php函数执行时间 查到以下内容:

set_time_limit

本函数用来配置该页最久执行时间。默认值是 30 秒,在 php.ini 中的 max_execution_time 变量配置,若配置为 0 则不限定最久时间。

当执行到该函数时,才开始计算。例如,若默认是 30 秒,而在执行到该函数前已执行了 25 秒,而用本函数改为 20 秒,则该页面最长执行时间为 45 秒。

最后在php函数里 添加了这样一行:

set_time_limit(0);

再次执行,结果可以了。

本文来自投稿,不代表科技代码立场,如若转载,请注明出处https://www.cwhello.com/6387.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
上一篇 2018年4月13日 09:33
下一篇 2018年4月13日 09:45

相关推荐

  • PHP开发中的API接口创建详解。

    随着互联网的快速发展,API接口在现代Web应用中扮演着越来越重要的角色。作为PHP开发者,了解如何创建API接口是非常必要的技能。本文将详细介绍PHP开发中API接口创建的基本内容。什么是API接口?API是Application...

    2023年6月3日
    03
  • 重蔚php学习第三十五天——php表单文件上传

    什么是文件上传 <input type=’file’ /> 文件框 允许用户选择一个本地文件上传至服务器   准备工作 1)表单 2)设置method=”post”,不能使用get get是将数据附近地址栏中,会限制数据大小,只能传输文...

    2017年10月20日 PHP自学教程
    0443
  • 利用PHP快速创建直播功能。

    在今天的互联网社会中,直播已经成为了一个非常流行的娱乐方式和社交方式。各大直播平台如斗鱼、虎牙等已经成为了众多年轻人的必备娱乐工具,直播也成为了一种新的创业方式。而对于一些企业、机构或者个人而言,...

    2023年5月23日
    03
  • 如何使用PHP实现商城的品牌搜索功能。

    近年来,随着互联网的快速发展,电商行业的崛起已成为现代商业中的一股主流趋势。而其中最具代表性的商业类型就是“购物商城”,以淘宝、京东等为代表,这些平台的业务涉及人员、库存、订单、物流等多种方面。其中...

    2023年5月23日
    00
  • PHP绘图坐标体系

    在编程世界中坐标体系和我们上学时数学里面的坐标体系不一样的。坐标越往右,值就越大,坐标越往下,值就越大。可以通过下面的图来简单理解一下。

    2018年8月31日
    0230
  • php的算术运算符与赋值运算符

    说明:是+ - * / % 赋值运算符--= 说明:就是给变量赋值的作用。

    2017年12月2日
    0198
  • php如何使用PHP的SNMP扩展。

    PHP的SNMP扩展是一种使PHP能够通过SNMP协议与网络设备进行通信的扩展程序。使用该扩展可以方便地获取和修改网络设备的配置信息,例如路由器、交换机等设备的CPU、内存、网络接口等信息,也可以进行诸如开关设备端...

    2023年6月3日
    02
  • PHP入门指南:代码重用。

    随着互联网技术的不断发展,Web开发已经成为了一种非常重要的技能。在众多Web开发技术中,PHP已经成为了非常受欢迎的服务器端脚本语言。PHP可以用于开发各种类型的Web应用程序,包括博客、电子商务网站、社交网络...

    2023年5月23日
    01

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息