Ich habe ein Problem mit der Standardkonfiguration von Tomcat 7 unter Debian 8.
Problem: Die CPU meines Servers springt aufgrund eines Java-Prozesses auf 100 % und bleibt dort stundenlang, was den Server verlangsamt. Wenn ich den Tomcat-Server neu starte, geht die CPU wieder auf 1 %. Nach einigen Stunden tritt das Problem erneut auf.
Status der Java-Anwendung: Auf Tomcat sind keine benutzerdefinierten Java-Anwendungen installiert, daher handelt es sich wahrscheinlich um ein Tomcat-Problem.
Protokolle: Beim Beobachten von catalina.out habe ich diese Fehlermeldung in Übereinstimmung mit dem CPU-Pitch-Start gefunden
19. Januar 2017, 01:03:23 Uhr org.apache.coyote.http11.AbstractHttp11Processor Prozessinfo: Fehler beim Parsen des HTTP-Anforderungsheaders
So replizieren Sie: Nach dem Neustart des Servers habe ich versucht, über https auf die Homepage des Tomcat-Servers zuzugreifen, indem ich diese URL über einen Webbrowser aufgerufen habe
und voilà, die CPU fängt an, verrückt zu spielen, und ich bekomme das Protokoll wie zuvor.
Was bedeutet das: Das bedeutet, dass jeder mit einer speziellen Anfrage meinen Server mit DDOS-Angriffen attackieren kann.
Frage: Gibt es eine Möglichkeit, dieses Problem zu lösen, ohne meine Linux-Distribution oder die von apt verwendeten gepackten Versionen von Tomcat zu ändern?
Ich verwende ein neues Debian 8-Standardimage von Google Compute Engine. Tomcat 7.0.56 Java 1.7.0_111
Antwort1
Ich hatte genau das gleiche Problem mit Debian 8, tomca7.0.56.
Für mich war das Upgrade auf die Backport-Version die Lösung. Ich habe Tomcat7, Tomcat7-Common, Libtomcat7-Java und Libservlet3.0-Java auf Version =7.0.73-1~bpo8+1 aktualisiert (auf diese Weise: apt-get install tomcat7=7.0.73-1~bpo8+1)
Ich glaube, wir haben mit der aktuellen Version von Tomcat 7.0.56 in Debian 8 ein massives Sicherheitsproblem. Mit der Standardkonfiguration führt jeder, der einfach https://domain.tld:8080 aufruft, zu einer CPU-Skalierung auf 100 %, bis Sie den Tomcat neu starten!
Antwort2
Kurz gesagt, bewerben Sie sichwissenschaftliche Methode.
- Finden Sie heraus, was auf Port 8080 lauscht.
- Finden Sie heraus, wie es konfiguriert ist.
- Verstehen Sie, was es tut.
- Ergreifen Sie geeignete Maßnahmen
Antwort3
Ich habe genau das gleiche Problem und die gleiche Systemkonfiguration. Wenn ich den Server neu starte, ist er für ein oder zwei Tage in Ordnung, dann nutzt Tomcat7 wieder etwa 99 % der CPU.
Dieses Mal habe ich Folgendes gemacht:
Dienst Tomcat7 stoppen
Und bei mir funktioniert es immer noch. Ich verwende kein Java, wie Sie erwähnt haben, also ist es für mich in Ordnung.