Request failed with status code 504,Gateway time out

问题描述:

部署在测试环境的项目在执行某功能时,后台程序在执行过程中,前端控制台在一分钟左右会报出Request failed with status code 504,Gateway time out异常。但是在本地开发环境会正常运行,并不会报出异常。
问题分析:

  1. 可能是本地环境和测试环境的后台代码或配置不同;
  2. 可能是本地环境和测试环境的前台代码或配置不同;
  3. 可能是本地环境和测试环境的环境不同;

排查过程:

  1. 针对问题1、2,将所有代码重新提交,查看nacos中不同空间下的配置文件,将代码、配置进行统一;查找访问链路中可能控制超时时间的配置进行调整。先后判断了后端feign的超时参数、gateway的response-timeout等参数,前端请求超时的参数,并未发现问题。随后通过Apifox对测试环境后端接口进行单独调用,发现并未出现504异常。可以初步得出结论,问题可能出现在前端向后端发送请求的过程中。
  2. 针对问题3及排查步骤1中得出的结论,开始排查两个环境的部署差异,发现测试环境部署了nginx,而本地开发环境并未部署。根据这一环境差异,查阅资料nginx有下面三个参数对超时有控制:proxy_connect_timeout、proxy_read_timeout、proxy_send_timeout,以上参数默认值均为60s。此时猜测超时异常与该配置有关。
  3. 根据排查步骤2中的猜测,在nginx配置文件中添加proxy_connect_timeout、proxy_read_timeout、proxy_send_timeout三个参数,并测试不同时间下,超时异常是否会出现。经过几次测试,发现超时异常依然存在。
  4. 根据排查步骤3中的情况,使用systemctl status nginx指令查看nginx状态,发现添加参数后nginx并没有热部署,因此使用systemctl restart nginx指令重启nginx。再次测试,超时异常消失。问题解决。
相关推荐
泽济天下20 小时前
【工作记录】Kong Gateway 入门篇之部署及简单测试
gateway·kong
JAVA坚守者1 天前
API 网关核心功能解析:负载均衡、容灾、削峰降级原理与实战摘要
gateway·负载均衡·微服务架构·容灾备份·api 网关·削峰降级·云原生技术
大G哥3 天前
实战演练:用 AWS Lambda 和 API Gateway 构建你的第一个 Serverless API
云原生·serverless·云计算·gateway·aws
说淑人3 天前
Spring Cloud & 以Gateway实现限流(自定义返回内容)
java·spring cloud·gateway·限流
zhojiew5 天前
istio in action之Gateway流量入口与安全
安全·gateway·istio
Absinthe_苦艾酒5 天前
SpringCloud之Gateway基础认识-服务网关
spring cloud·微服务·gateway
金斗潼关6 天前
SpringCloud GateWay网关
java·spring cloud·gateway
残花月伴7 天前
springCloud/Alibaba常用中间件之GateWay网关
spring cloud·中间件·gateway
柚个朵朵7 天前
Springclound常用五大组件及其使用原理
spring cloud·hystrix·eureka·ribbon·gateway·feign
曹朋羽8 天前
spring cloud gateway 断言(Predicates)与过滤器(filters)
spring cloud·gateway