You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS EC2部署的Spring Boot服务突发卡顿超时,求排查建议

解决建议

1. 排查异常请求来源

日志里的MGLNDD_3.38.211.169_80800x0a是明显不符合HTTP规范的非法请求,大概率是恶意扫描或异常客户端发起的:

  • 登录AWS EC2控制台,检查安全组规则,只将信任的IP(比如你的本地测试IP)加入8080端口的访问白名单,关闭对未知IP的开放。
  • 在EC2实例上执行netstat -anp | grep 8080,查看当前连接到8080端口的IP,排查是否有大量异常连接占用服务资源。

2. 配置Tomcat过滤非法请求

通过Spring Boot配置Tomcat的请求解析规则,过滤非法请求避免线程被无效占用:

  • 在application.properties中添加以下配置:
server.tomcat.max-http-header-size=8192
server.tomcat.relaxed-path-chars=[]|{}^\`"<>
server.tomcat.relaxed-query-chars=[]|{}^\`"<>
server.tomcat.strict-query-chars=
  • 或者自定义Tomcat配置类,强制拦截不符合规范的请求:
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TomcatConfig {
    @Bean
    public WebServerFactoryCustomizer<TomcatServletWebServerFactory> tomcatCustomizer() {
        return factory -> factory.addConnectorCustomizers(connector -> {
            connector.setProperty("relaxedPathChars", "[]|{}^&#x5c;&#x60;&quot;&lt;&gt;");
            connector.setProperty("relaxedQueryChars", "[]|{}^&#x5c;&#x60;&quot;&lt;&gt;");
            connector.setProperty("strictQueryChars", "");
        });
    }
}

3. 检查服务资源占用

服务缓慢可能和资源耗尽直接相关:

  • 执行top命令查看CPU、内存占用情况,确认是否是Java进程资源过载,或其他进程抢占资源。
  • 用jstack <Java进程PID>导出线程栈,检查是否有大量阻塞线程,排查数据库连接池是否耗尽、是否存在IO阻塞等问题。
  • 关联数据库(如AWS RDS)查看性能指标,检查是否有慢查询、连接数已满等情况。

4. 重启服务并实时监控

先重启Spring Boot服务释放异常连接,然后执行以下命令实时监控日志:

tail -f /home/ec2-user/apps/deploy/application.log

观察是否有新的非法请求产生,同时验证服务响应速度是否恢复正常。


内容的提问来源于stack exchange,提问作者Lucy Back

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 14:44:55