首页 > 其他分享 >网站返回504排查记录

网站返回504排查记录

时间:2023-02-18 21:00:56浏览次数:50  
标签:返回 waf 120s 排查 tengine timeout 服务器 504 超时

tengine配置的全局超时时间是120s,供应商说他们的请求会超过120s。于是我针对这个域名配置了相关的超时时间。配置如下:

proxy_connect_timeout       600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;

tengine重启后,供应商测试发现请求还是在120s后超时,返回504 gateway timeout。

这个结果我有点诧异,因为tengine这边我看日志返回的状态码是499,但是网站返回给浏览器的状态码是504。

我查看了状态码的解释:

499:服务端向客户端发送数据时,客户端已经关闭了连接。最常见的场景是timeout设置不合理,nginx把请求转发给上游服务器,上游服务器处理慢,客户端等不及主动断开了连接。客户端设置超时是60s,nginx超时是120s。

504:gateway timeout,服务器作为网关不能从上游服务器及时的得到响应返回给客户端。


我检查了下访问链路,发现链路是这样的client--->waf--->slb--->tengine--->java。

当我在本地将域名指向slb后,发现问题解决,不再超时了。可以确认问题出在waf上,我查看waf的配置后,发现有个全局超时配置,超时配置是120s。将waf上的超时配置修改后,问题得到解决。

排查问题过程中,由于链路经过多层代理,一定要弄清楚主体。

对于client来说,waf就是网关服务器,配置了超时时间120s,由于请求超过120s,waf返回504给client。

tengine作为反向代理服务器,waf是客户端,tengine是服务端,java是上游服务,由于tengine设置的超时是600s,而waf设置的是120s,超过120s后,tengine还在等待上游服务返回结果,waf已经断开连接,等到tengine收到响应返回给waf后,发现waf已经断开连接,tengine作为代理服务器返回499状态码。


正向代理:是从内网出去获取某些内容,比如内网访问外网通过一台代理服务器访问出去。VPN就是正向代理。

反向代理:代理​​服务器​​来接受internet上的连接请求,代理服务器屏蔽内部的细节。nginx作为内网的代理接受外网请求就是反向代理。

500:Internal Server Error,比如服务器内部软件有bug导致。

501:未实现,服务器不支持请求方法。

502:Bad Gateway,比如上游服务器关闭了。

503:Service Unavailable,比如上游服务器压力过载,没有足够的资源处理请求。



标签:返回,waf,120s,排查,tengine,timeout,服务器,504,超时
From: https://blog.51cto.com/liuping0906/6065525

相关文章

  • 关于服务器端渲染的 Web 应用的 504 错误问题
    除非客户在SSR中添加了用于显式发送504的自定义逻辑,否则504不会来自SSR。在默认的Spartacus/SSR中,没有显式发送504的逻辑。默认情况下它只发送200或500(仅......
  • 返回关键词对应的分类
     问题:地点中包含的关键词对应的分类放入一个单元格内,并以逗号分隔。函数公式解决:公式一:{=TEXTJOIN(",",1,IFERROR(IF(FIND(B$2:B$5,E2),C$2:C$5),""))}公式二:{=TEXT......
  • elastic-job服务启动报错,问题排查
     elastic-job服务启动报错,报错信息:org.quartz.SchedulerException:Jobthrewanunhandledexception.atorg.quartz.core.JobRunShell.run(JobRunShell.java:213)at......
  • Django Paginatior分页,页码过多,动态返回页码,页码正常显示
    问题:当返回数据较多,如设置每页展示10条,数据接近200条,返回页码范围1~20,前端每个页码都显示的话,就会出现页码超出当前页面,被遮挡的页码无法操作和显示不美观;代码优化:在使......
  • 统一返回格式
    统一返回格式MyResponseAdvice@RestControllerAdvice("com.xhlin.controller")publicclassMyResponseAdviceimplementsResponseBodyAdvice<Object>{@Overrid......
  • Controller代码,无侵入统一返回
    https://mp.weixin.qq.com/s/LnuVCks5LOUqf8Ad44N7aw//定义注解用于不是统一返回的@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public@inter......
  • PLSQL有返回值的存储过程的调用
    存储过程:CREATEORREPLACEPROCEDUREstu_proc(v_nameINVARCHAR2DEFAULT'张三',v_idOUTNUMBER)AS--声明语句段BEGIN--执行语句段SELECTidINTOv_i......
  • Java-webshell 排查
    参考:https://javasec.org/javaweb/MemoryShell/https://goodapple.top/archives/1355简介本次分享为javawebshell排查初级。抛砖引玉java获取web权限的shell......
  • linux脚本禁止修改排查
    问题描述同事发过来一个脚本,说怎么修改都修改不了保存提示:warning:Changingareaedonlyfile//orOperationnotpermitted提示没权限,不过我都是root了问题......
  • Springboot项目中注入bean失败的问题排查
    Springboot项目中注入bean失败的问题排查这是一个Spring常见的问题,下面我们从测试方法和普通方法出问题两个角度来下如何解决测试方法先查看目录是否有误测试类的包名......