今天程序在执行一项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;#原设置为300s
fastcgi_read_timeout 1200s;#原设置为300s
fastcgi_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.inimax_execution_time = 300s;PHP 脚本的最大执行时间,但是,在 php-cgi(php-fpm) 中,该参数不会起效。php-fpmrequest_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.cnblogs.com/youn/p/5345506.html

记一次 nginx 504 Gateway Time-out相关推荐

  1. flask uwsgi nginx *504* Gateway Time ou解决办法

    flask uwsgi nginx 504 Gateway Time ou解决办法 此方法有可能无效 修改 vi /etc/nginx/conf.d/配置文件名.conf 添加如下信息: uwsgi_ ...

  2. 深入分析Nginx 502 Bad Gateway和Nginx 504 Gateway(亲测)

    Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止. Nginx 504 Gateway ...

  3. 深入分析Nginx 502 Bad Gateway和Nginx 504 Gateway Time-out

    Nginx 502 Bad Gateway的含义是请求的PHP-CGI已经执行,但是由于某种原因(一般是读取资源的问题)没有执行完毕而导致PHP-CGI进程终止. Nginx 504 Gateway ...

  4. 解决nginx 504 Gateway Time-out的一些方法

    在CentOS下配置lnmp组合基本上用的都是同样的配置文件,一直都没出现过问题,可最近在一个vps上安装同样的环境之后,网站在线10多人就出 现了打开速度非常缓慢的情况,有好几次都是直接达到了ngi ...

  5. 【Nginx】解决 504 Gateway Time-out

    文章目录 Nginx + FastCGI (php-fpm) Nginx Proxy Timeout 常见的对应报错信息 "504 Gateway Timeout" "5 ...

  6. 解决 502、504 Gateway Time-out(nginx)

    504 Gateway Time-out问题常见于使用nginx作为web server的服务器的网站 我遇到这个问题是在升级discuz论坛的时候遇到的 一般看来, 这种情况可能是由于nginx默认 ...

  7. Nginx PHP 报504 Gateway time-out错误的解决方法

    Nginx PHP 报504 Gateway time-out错误的解决方法 参考文章: (1)Nginx PHP 报504 Gateway time-out错误的解决方法 (2)https://ww ...

  8. Nginx 出现504 Gateway Time-out的解决方法

    Nginx 出现504 Gateway Time-out的解决方法 参考文章: (1)Nginx 出现504 Gateway Time-out的解决方法 (2)https://www.cnblogs. ...

  9. Nginx报504 gateway timeout错误的解决方法

    提供给客户的bs软件,有一个导出报表的功能,经常性的报504错误 最近在工作中,需要做Excel导入的功能,由于Excel的数据比较多,而且我们的服务端程序需要对数据的内容做校验,会调用很多的外部服务 ...

最新文章

  1. 关于SparkStreaming的checkpoint的弊端
  2. 用平常心去对待不平常的事
  3. oracle用户创建和授权(一)
  4. homebrew mysql conf_homebrew 安装mysql后,如何配置mysql
  5. UPSNet论文笔记
  6. rabbitmq基于http的认证和授权
  7. hive导数据到mysql 自增主键出错_python+mysql做一个图书管理系统?
  8. 2037. 使每位学生都有座位的最少移动次数
  9. 三层交换原理及实验操作
  10. golang 语言中关于err的函数的封装使用
  11. 181021词霸有道扇贝每日一句
  12. 一文教会你使用R语言和基本统计分析
  13. java象棋代码注释_中国象棋程序的设计与实现(十一)--棋盘绘制算法(尽管注释非常详细,完全理解仍有难度)...
  14. 《数据结构》:中缀表达式转后缀表达式 后缀表达式的计算
  15. python生成基础头像_python个性化头像
  16. Java中常用的Dos命令
  17. bigquant量化平台笔记
  18. PS3 内置硬盘 Linux 读取,PS3用移动硬盘的根目录结构详细解析
  19. 快速提取批量文件名称,详细步骤
  20. 雷达基础系列文章之一:雷达信号的波形、调制形式以及工作模式

热门文章

  1. html文本框%3cdiv%3e,index.html
  2. html圆如何找到垂直中心线,一种用于找中心线及圆心的装置的制作方法
  3. android 页面icon拉伸_页面转场: 忽略它可能会使你犯错
  4. java 允许魔术变量_PHP超级全局变量、魔术变量和魔术函数汇总整理
  5. 机器人水库涵洞检测_管渠清淤机器人、管道浑水探测机器人……想不到吧?哈排水集团竟然是“科研达人”...
  6. Java机器学习开发库
  7. 数据结构之算法与线性表
  8. Python3 configparser值为多行时配置文件书写格式
  9. innodb_flush_log_at_trx_commit和sync_binlog参数详解
  10. UITextField监控文字变化方法