nginx 504 Gateway Time-out

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

排查过程:

查看该任务 发现内容是一个数据量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.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);

再次执行,结果可以了。

原文地址

504 nginx解决方案 当遇到错误时,通常是因为。:后端程序(如 PHP、Java 应用)处理时间超过 Nginx 的超时时间。数据库查询缓慢、外部接口调用超时、死循环或资源竞争等问题导致程序卡顿。:Nginx 与后端服务之间的网络不稳定或带宽不足。:Nginx 或后端服务(如 PHP-FPM)的超时参数设置过小。在 Nginx 配置文件中(通常位于或站点配置文件proxy_pass:将300替换为实际需要的超时时间(单位:秒)。如果后端服务响应时间更长,可进一步增大数值(如600秒)。php-fpm根据服务器内存调整或:在。 阅读详情

相关推荐

【Error】504 Gateway Timeout(已解决)

504 Gateway Timeout,通常是因为代理服务器(通常是NGINX或类似的服务器)在等待上游服务器(后端服务器)的响应时超过了设置的时间限制。

m0_64210833的博客 1万+

java web开发中大量数据导出Excel超时(504)问题解决

开发测试时候导入数据遇到大数据导入的问题,整理了下,需要的朋友可以参考下

Nginx504 Gateway Time-out 解决方案

背景Nginx做反向代理,springboot为后端服务。问题通过浏览器向后台发起请求够,由于后台处理时间长,出现504GatewayTime-out,实际后台程序依然在执行。如何解决?如果你恰好在寻找这种问题的解决方案,并且不喜欢啰嗦,直接移动到两种解决方案504从哪来本文的场景下504nginx返回的。nginx配置中控制该超时时间的属性Defaulthttp,server,location官方描述如下一个请求有三方参与浏览器,nginx,后台服务器。或。...

m0_67403272的博客 5709

Nginx 提示 504 Gateway Time-out(The gateway did not receive a timely response from the...)解决办法

1 2 3 4 $r = new ReflectionClass($this); Zend_Debug::dump($r->getConstants(), "Constants"); Zend_Debug::dump($r->getProperties(), "Properties"); Zend_Debug::dump($r->getMethods(), "Methods");

JineD的博客 3万+

nginx出现504 Gateway Time-out错误的原因分析及解决

504 GatewayTime-out

weixin_45112997的博客 8776

504 Gateway Time-out nginx如何处理

如果问题仍然存在,可以逐步排查后端和网络问题,结合 Nginx 的错误日志进行进一步诊断。错误时,通常表示后端服务器未能在规定时间内响应请求。如果后端服务响应较慢或不可用,需优化后端服务。

AngelCryToo的专栏 3435

Nginx 504 Gateway time-out 解决方法

本文介绍nginx出现504 Gateway Time-out问题的原因,分析问题并提供解决方法。 1. 问题分析 nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。 通常有以下几种情况导致 程序在处理大量数据,导致等待超时。 程序中调用外部请求,而外部请求响应超时。...

wangji5487的博客 1432

nginx出现504 Gateway Time-out

问题 nginx访问出现504 Gateway Time-out 常见原因:程序在处理大量数据,接口超过1分钟(默认的)未返回数据,导致等待超时。 出现这种情况,我们可以先优化程序,缩短执行时间。可以调大nginx超时限制的参数,使程序可以正常执行。 解决方法 nginx配置nginx.conf中,设置以下几个参数,增加超时时间配置: 如果使用了Nginx的代理,可以在块里加上下面三个配置: location /foo { proxy_pass http://xxx.xxx.xxx...

hiizw的博客 3307

深入解析与全面解决Nginx 504 Gateway Time-out错误

504 Gateway Time-out是HTTP协议定义的5xx服务器错误状态码之一,表示作为网关或代理的服务器(如Nginx)未能及时从上游服务器(如PHP-FPM、Tomcat等)收到响应。504错误通常由后端处理超时、网络问题、配置不当、资源耗尽或服务崩溃等场景触发。为优化504错误,可通过调整Nginx的超时参数(如proxy_connect_timeout、proxy_read_timeout等)、优化缓冲与缓存配置、调整操作系统内核参数、提升文件描述符限制等方式进行系统级调优。此外,针对后端服

记录学习的过程 1462

完美解决Nginx 504 Gateway time-out

最近用dedecms建的一個網站新增了大批內容,有三個欄目的內容量都超過了兩千篇,超過兩千三百篇的兩個欄目在生成欄目列表的時候就出現了504 Gateway time-out 服務器用的是nginx,我不是很懂,服務器維護人員在網上隨便找了一篇文章,修改了nginx的緩存設置,不管用,他就不管了,可是我不能不管啊,不能生成列表頁面,那後面的內容不是都不能用了麼?     把數據庫下載到本地,

jinyeweiyang的专栏 1万+

tomcat nginx 504 Gateway Time-out的方法

最近开发一个OA在导出考勤统计时出现nginx 504 Gateway Time-out 我们生产环境是 nginx代理tomcat 网查第一种方案 504 Gateway Time-out 解决方法 他们修改nginx.conf 文件,在http下加   fastcgi_connect_timeout300s;      fastcgi_send_timeout300s;      f...

海哥AI工具实战|程序员视角的AI效率实战教程 1732

nginx 出现504 Gateway Time-out的解决方法

本文介绍nginx出现504 Gateway Time-out问题的原因,分析问题并提供解决方法。 1.问题分析 nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。   通常有以下几种情况导致 1.程序在处理大量数据,导致等待超时。 2.程序中...

傲雪星枫 34万+

Nginx 504 Gateway Time-out

1、场景: 因业务需求写了一个比较耗时的脚本,在命令行中脱离nginx可以正常执行,但用浏览器执行用nginx做反向代理就出现 “504 Gateway Time-out”; 2、分析: Nginx 504 Gateway Time-out的含义是所请求的网关没有请求到,简单来说就是没有请求到可以执行的PHP-CGI 通常以下几种情况会导致这个问题: 1.程序在处理大量的数据,或者有死循环...

派煌篇的博客 1325

nginx 504 (Gateway Time-out)

nginx 504 (Gateway Time-out)

cangqiongxiaoye的博客 2202

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

Nginx 出现504 Gateway Time-out的解决方法 本文介绍nginx出现504 Gateway Time-out问题的原因,分析问题并提供解决方法。 1.问题分析 nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。 通常有以下几种情况导...

YunWisdom 1782
上一篇: php-fpm.conf 配置文件详解
下一篇: mysql 如何解决字段不区分大小写的问题
network_dream
博客等级 码龄9年 13粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值