Debian 8에서 tomcat 7을 사용하면 CPU 100%

Debian 8에서 tomcat 7을 사용하면 CPU 100%

Debian 8에서 Tomcat 7의 기본 구성에 문제가 있습니다.

문제: Java 프로세스로 인해 서버의 CPU가 확보되어 100%로 점프하고 몇 시간 동안 그대로 유지되어 서버가 느려졌습니다. Tomcat 서버를 다시 시작하면 CPU가 다시 1%로 이동합니다. 몇 시간 후에 문제가 다시 시작됩니다.

Java 애플리케이션 상태: Tomcat에 사용자 정의 Java 애플리케이션이 설치되어 있지 않으므로 Tomcat 문제일 가능성이 높습니다.

로그: catalina.out을 보면서 CPU 피치 시작과 관련된 이 오류 메시지를 발견했습니다.

2017년 1월 19일 오전 1:03:23 org.apache.coyote.http11.AbstractHttp11Processor 프로세스 INFO: HTTP 요청 헤더 구문 분석 오류

복제 방법: 서버를 다시 시작한 후 웹 브라우저를 통해 이 URL을 방문하여 https를 사용하여 Tomcat 서버 홈 페이지에 액세스하려고 했습니다.

https://domain.com:8080

짜잔, CPU가 이상해지기 시작하고 이전과 같은 로그를 얻었습니다.

의미: 이는 특별한 요청이 있는 모든 사람이 내 서버에 DDOS를 수행할 수 있다는 의미입니다.

질문: Linux 배포판이나 apt에서 사용하는 Tomcat 패키지 버전을 변경하지 않고 이 문제를 해결할 수 있는 방법이 있습니까?

저는 Google Compute Engine의 새로운 Debian 8 기본 이미지를 사용하고 있습니다. 톰캣 7.0.56 자바 1.7.0_111

답변1

Debian 8, tomca7.0.56에서도 똑같은 문제가 발생했습니다.

나에게는 백포트 버전으로 업그레이드하면 문제가 해결되었습니다. tomcat7, tomcat7-common, libtomcat7-java 및 libservlet3.0-java를 버전 =7.0.73-1~bpo8+1로 업그레이드했습니다(예: apt-get install tomcat7=7.0.73-1~bpo8+1).

내 생각에는 데비안 8의 현재 Tomcat 7.0.56 릴리스에 엄청난 보안 문제가 있는 것 같습니다. 표준 구성을 사용하면 단순히 https:// domain.tld:8080을 호출하는 모든 사람이 Tomcat을 다시 시작할 때까지 CPU 스케일링이 100%로 늘어납니다. !

답변2

한마디로 신청하세요과학적인 방법.

  • 포트 8080에서 수신 대기 중인 항목을 알아보세요.
  • 어떻게 구성되어 있는지 알아보세요.
  • 그것이 무엇을 하고 있는지 이해하십시오.
  • 적절한 조치를 취하십시오.

답변3

나는 똑같은 문제와 동일한 시스템 구성을 가지고 있습니다. 서버를 재부팅하면 하루나 이틀 정도 괜찮을 것입니다. 그런 다음 다시 tomcat7이 CPU의 약 99%를 사용합니다.

이번에는 다음과 같이 했습니다.

서비스 tomcat7 중지

그리고 그것은 아직도 나를 위해 일하고 있습니다. 나는 당신이 언급한 것처럼 Java를 사용하지 않으므로 괜찮습니다.

관련 정보