服务端正常启动了,但是客户端请求不到有哪些原因?如何排查?
如果客户端请求的接口没有响应,排查的方式:
-
检查接口IP地址是否正确,ping一下接口地址。
-
检查被测接口端口号是否正确,可以在本机Telnet接口的IP和端口号,检查端口号能否连通
-
检查服务器的防火墙是否关闭,如果是以为安全或者权限问题不能关闭,需要找运维进行策略配置,开放对应的IP和端口。
-
检查你的客户端(浏览器、测试工具),是否设置了网络代理,网络代理可以造成请求失败。
如果客户端的请求有响应,但是返回了错误状态码,那么根据错误码做对应的排查:
-
400:客户端请求错误,比如请求参数格式错误
-
401:未授权,比如请求header里,缺乏必要的信息头。(token,auth等)
-
403:禁止,常见原因是因为用户的账号没有对应的URL权限,还有就是项目中所用的中间件,不允许远程连接(Tomcat)
-
404:资源未找到,导致这种情况的原因很多,比如URL地址不正确
-
500:服务器内部错误,出现这种情况,说明服务器内部报错了 ,需要登录服务器,检查错误日志,根具体的提示信息在进行排查
-
502/503/504(错误的网关、服务器无法获得、网关超时):如果单次调用接口就报该错误,说明后端服务器配置有问题或者服务不可用,挂掉了;如果是并发压测时出现的,说明后端压力太大,出现异常,此问题一般是后端出现了响应时间过长或者是无响应造成的
服务端出现大量的timewait有哪些原因?
首先要知道 TIME_WAIT 状态是主动关闭连接方才会出现的状态,所以如果服务器出现大量的 TIME_WAIT 状态的 TCP 连接,就是说明服务器主动断开了很多 TCP 连接。问题来了,什么场景下服务端会主动断开连接呢?
-
第一个场景:HTTP 没有使用长连接
-
第二个场景:HTTP 长连接超时
-
第三个场景:HTTP 长连接的请求数量达到上限