• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

php–504Gateway

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

最近运营反应客户在导出或者查询数据的时候返回504

如图:

第一个反应就是查询语句耗时太长了,所以把同事之前写的sql语句都打印出来,连接线上数据库执行explain操作,一看果然没有用到索引,执行的全表扫描,如图

而且还使用了临时表,还使用了排序,就是上篇我写的 为什么有了fiilesort就需要优化,然后就跟dba申请加索引,并说明原因。

除了业务上sql语句查询慢导致的超时,还有就是nginx的设置超时时间可以看一下,如果业务一直在处理,超过了nginx的设置的超时时间就会返回504

使用locate nginx 或者 ps aux|grep nginx 找到nginx的配置文件如图:

找到nginx.conf的配置文件后打开

这三个参数:

fastcgi_connect_timeout
fastcgi连接超时时间,默认60秒

fastcgi_send_timeout
nginx 进程向 fastcgi 进程发送请求过程的超时时间,默认值60秒

fastcgi_read_timeout
fastcgi 进程向 nginx 进程发送输出过程的超时时间,默认值60秒

这个时间就设置的有点长,因为之前没有优化sql语句的时候修改的,现在sql语句优化完了就需要修改下比如60

 

最后分析

nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。
 
通常有以下几种情况导致

1.程序在处理大量数据,导致等待超时。
2.程序中调用外部请求,而外部请求响应超时。
3.连接数据库失败而没有停止,死循环重新连。

最后成功解决,特写篇记录一下


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP设计模式—装饰器模式发布时间:2022-07-10
下一篇:
PHP预编译处理技术简介发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap