Tengo un problema con la configuración predeterminada de Tomcat 7 en Debian 8.
Problema: Obtuve la CPU de mi servidor, debido al proceso de Java, salté al 100% y permanecí allí durante horas, lo que hizo que el servidor fuera lento. Si reinicio el servidor Tomcat, la CPU vuelve al 1%. Después de algunas horas el problema vuelve a empezar.
Estado de la aplicación Java: No hay aplicaciones Java personalizadas instaladas en Tomcat, por lo que probablemente se trate de un problema de Tomcat.
Registros: Mirando catalina.out encontré este mensaje de error en correspondencia con el inicio del tono de la CPU
19 de enero de 2017 1:03:23 a.m. org.apache.coyote.http11.AbstractHttp11Proceso del procesador INFORMACIÓN: Error al analizar el encabezado de solicitud HTTP
Cómo replicar: después de reiniciar el servidor, intenté acceder a la página de inicio del servidor Tomcat usando https visitando esta URL a través de un navegador web.
y listo, la CPU empieza a volverse loca y obtengo el registro como antes.
Qué significa: Esto significa que cualquiera que tenga una solicitud especial puede hacer DDOS en mi servidor.
Pregunta: ¿Existe alguna forma de resolver este problema sin cambiar mi distribución de Linux o las versiones empaquetadas de Tomcat utilizadas por apt?
Estoy usando una nueva imagen predeterminada de Debian 8 de Google Compute Engine. Tomcat 7.0.56 Java 1.7.0_111
Respuesta1
Tuve exactamente el mismo problema con Debian 8, tomca7.0.56.
Para mí, actualizar a la versión backport lo resolvió. Actualicé tomcat7, tomcat7-common, libtomcat7-java y libservlet3.0-java a la versión =7.0.73-1~bpo8+1 (así: apt-get install tomcat7=7.0.73-1~bpo8+1)
Creo que tenemos un problema de seguridad enorme con la versión actual de Tomcat 7.0.56 en Debian 8. Con la configuración estándar, todos los que simplemente llaman a https:// domain.tld:8080 provocan que la CPU se escale al 100% hasta que reinicies Tomcat. !
Respuesta2
En resumen, aplicarmétodo científico.
- Descubra qué se escucha en el puerto 8080.
- Descubra cómo está configurado.
- Entiende lo que está haciendo.
- Tomar las medidas apropiadas
Respuesta3
Tengo exactamente el mismo problema y las mismas configuraciones del sistema. Cuando reinicio el servidor, estará bien durante uno o dos días, luego nuevamente Tomcat7 usa aproximadamente el 99% de la CPU.
Esta vez hice esto:
parada del servicio tomcat7
Y todavía me funciona. No uso Java, como mencionaste, así que está bien para mí.