在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近运营反应客户在导出或者查询数据的时候返回504 如图: 第一个反应就是查询语句耗时太长了,所以把同事之前写的sql语句都打印出来,连接线上数据库执行explain操作,一看果然没有用到索引,执行的全表扫描,如图 而且还使用了临时表,还使用了排序,就是上篇我写的 为什么有了fiilesort就需要优化,然后就跟dba申请加索引,并说明原因。 除了业务上sql语句查询慢导致的超时,还有就是nginx的设置超时时间可以看一下,如果业务一直在处理,超过了nginx的设置的超时时间就会返回504 使用locate nginx 或者 ps aux|grep nginx 找到nginx的配置文件如图: 找到nginx.conf的配置文件后打开 这三个参数: fastcgi_connect_timeout fastcgi_send_timeout fastcgi_read_timeout 这个时间就设置的有点长,因为之前没有优化sql语句的时候修改的,现在sql语句优化完了就需要修改下比如60
最后分析 nginx访问出现504 Gateway Time-out,一般是由于程序执行时间过长导致响应超时,例如程序需要执行90秒,而nginx最大响应等待时间为30秒,这样就会出现超时。 1.程序在处理大量数据,导致等待超时。 最后成功解决,特写篇记录一下 |
2022-08-17
2022-11-06
2022-08-17
2022-07-29
2022-07-29
请发表评论