请求php接口504 Gateway timeout

4 篇文章 0 订阅

一般这种情况排序服务器cpu,内存过高卡死的原因,就是你的php程序运行过长了。
解决办法
1.技术流:找到php运行超时的原因,一般来说要么就是连接mysql超时,或者curl请求太多超时,这种时候就需要你去优化代码了,降低请求和查询时间,或者将这次请求加入队列,异步运行。
2.暴力流:因为一个不合理的需求你必须要让程序运行那么长的时间,还得把运行结果返回到页面上,这个时候怎么办呢??只有怎么暴力怎么来了

首先在php函数内设置

set_time_limit(0);

让这个php程序可以不限时的运行,如果设置了这个代码,请你务必在前端的请求按钮上加遮罩!!你永远不会知道前端使用者在看到点击没反应时点击按钮的手速有多快~~
第二,设置nginx配置,apache的这里就不讲了,因为我就用的nginx

http {
.......
}

中加上

         fastcgi_connect_timeout 75; # 链接

         fastcgi_read_timeout 300;  # 读取

         fastcgi_send_timeout 300;   #发请求

这里的这个数字指的是秒,参数的含义

fastcgi_connect_timeout=300; #连接到后端fastcgi超时时间
fastcgi_send_timeout=300; #向fastcgi请求超时时间(这个指定值已经完成两次握手后向fastcgi传送请求的超时时间)
fastcgi_rend_timeout=300; #接收fastcgi应答超时时间,同理也是2次握手后
这样就可以了,只要你的php处理时间不超过5分钟那就没问题~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
接口请求超时报504 Gateway Time-out是指在客户端向服务器发送请求时,服务器在规定的时间内没有响应,导致请求超时。这种情况通常是由于服务器负载过高、网络连接问题或者后端服务处理时间过长等原因引起的。下面是一些解决和优化方案: 1. 检查服务器负载:首先,你可以检查服务器的负载情况,确保服务器能够处理请求。如果服务器负载过高,可以考虑增加服务器的处理能力,例如增加服务器的CPU、存或者使用负载均衡来分担请求。 2. 优化后端服务:如果后端服务处理时间过长,可以考虑对后端服务进行优化。例如,可以检查后端服务的代码逻辑是否存在性能瓶颈,是否有不必要的数据库查询或者网络请求等。通过优化后端服务,可以减少请求的处理时间,从而避免请求超时。 3. 检查网络连接:网络连接问题也可能导致请求超时。你可以检查网络连接是否稳定,是否存在丢包或者延迟等问题。如果发现网络连接存在问题,可以尝试重新连接网络或者联系网络服务提供商解决问题。 4. 增加请求超时时间:如果请求超时时间设置过短,可以考虑增加请求超时时间。通过增加请求超时时间,可以给服务器更多的时间来处理请求,从而避免请求超时。 5. 使用缓存:如果接口的响应数据不经常变化,可以考虑使用缓存来减少对后端服务的请求。通过使用缓存,可以将接口的响应数据缓存在服务器或者客户端,从而减少对后端服务的请求次数,提高接口的响应速度。 这些是解决和优化接口请求超时报504 Gateway Time-out的一些常见方案。根据具体情况,你可以选择适合你的方案来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值