2017-05-23 3 views
1

Ich entwickelte Spring-Boot-App. Ich habe es mit Embedded Tomcat vorbereitet. Wenn ich dieses Glas auf meinem Computer laufe, funktioniert alles gut. Aber wenn ich dieselbe App auf VPS starte, wird es initialisiert, auf erste Anfrage druckt es, dass dispatcherServlet initialisiert wird, aber es gibt keine andere Antwort von ihm. Browser hält Verbindung und die Antwort kommt nie. Ich habe versucht, es auf anderen Ports und ähnlichem laufen zu lassen, aber es gibt kein Glück darin. Der erste Versuch, als ich gerade App ausgeführt habe, hat es funktioniert. Aber dann habe ich versucht, es im Hintergrund laufen zu lassen und von diesem Zeitpunkt an gab es keine Antwort mehr.Keine Antwort von Spring Boot App auf VPS

Ich glaube, dass es Anfrage empfängt, weil es diese DispacherServlet-Initialisierung druckt. Jeder Rat wäre hilfreich.

+0

Was ist mit VPS gemeint? –

+0

Virtual Private Server – Boris

+0

Können Sie 'tracert/traceroute' ausführen, um die Springboot-App zu erreichen? – harshavmb

Antwort

0

überprüfen Sie Ihre firwall Beschränkung. versuchen Verbindung zu Ihrem Anschluss zu ermöglichen, .wenn Sie CentOS werden mit diesem Befehl mit Ihrem Port

firewall-cmd --zone=public --add-port=8080/tcp 

ersetzen 8080 7 versuchen. wenn Sie den iptables-Dienst verwenden. versuchen:

iptables -I INPUT -p tcp -m tcp --dport 8080-j ACCEPT 
+0

Es gibt keinen Fehler – Boris

1

Ich beobachte das gleiche Verhalten mit meiner Spring Boot-Anwendung. Aber wenn ich lange genug warten, habe ich diese Meldung:

o.a.c.util.SessionIdGeneratorBase  : Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [224,707] milliseconds. 

Es bedeutet wahrscheinlich, dass Ihre VPS eine schwache Entropiequelle hat und es konnte nimmt eine (sehr) lange Zeit vor dem vollständigen Inbetriebnahme.

Nach dem tomcat wiki:

Tomcat 7+ stützt sich stark auf Secure Klasse Zufallswerte für die Session-IDs zur Verfügung zu stellen und in anderen Orten. Abhängig von Ihrer JRE kann es beim Start zu Verzögerungen kommen, wenn die Entropiequelle, die zur Initialisierung von SecureRandom verwendet wird, zu wenig Entropie aufweist.

Sie können eine nicht-blockierende Entropiequelle verwenden, indem Sie die Systemeigenschaft mit:

-Djava.security.egd=file:/dev/./urandom 

Es einige Auswirkungen auf die Sicherheit hat, lesen Sie this question on security.stackexchange.com für weitere Einzelheiten.