3

Ich versuche, eine sehr einfache Spring Boot-Anwendung auf AWS Elastic Beanstalk mit AWS Java-Konfiguration (nicht ihre Tomcat-Konfiguration) bereitzustellen, aber ich bekomme immer eine 502 Fehler mit der folgende Protokoll:Spring Boot-Anwendung auf Elastic Beanstalk Java-Umgebung zurückgegeben 502

2016/06/10 02:00:14 [error] 4921#0: *1 connect() failed 
(111: Connection refused) while connecting to upstream, client: 38.94.153.178, 
server: , request: "GET /test HTTP/1.1", upstream: "http://127.0.0.1:5000/test", 
host: "my-single-instance-java-app.us-east-1.elasticbeanstalk.com" 

ich habe meine Port über Spring application.properties zu dem, was das Protokoll scheint zu wollen, versucht Einstellung (5000, mit server.port=5000) und haben bestätigt, dass meine Anwendung auf diesem Port erfolgreich auf localhost läuft.

This question ist sehr ähnlich, außer dass ich ein JAR anstelle eines WAR bereitstellen. Es sieht so aus, als ob etwas fehlt, was die Konfiguration von Nginx betrifft, und ich weiß nicht, wie ich vorgehen soll.

Hier ist mein Frühling Anwendung:

@SpringBootApplication 
public class MyApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(MyApplication.class, args); 
    } 

    @RestController 
    public static class MainController { 

     @RequestMapping("/test") 
     public String testMethod() { 
      return "Method success!"; 
     } 
    } 
} 
+0

Können Sie Ihre Sicherheitsgruppe Regeln einfügen ? – error2007s

+0

Ich bin mir nicht sicher, ob dies ist, was Sie fragen, aber ich habe zwei Rollen: Rolle: aws-elasticbeanstalk-EC2-Rolle Berechtigungen: AWSElasticBeanstalkWebTier AWSElasticBeanstalkMulticontainerDocker AWSElasticBeanstalkWorkerTier Rolle: aws-elasticbeanstalk-Service-Rolle Berechtigungen: AWSElasticBeanstalkEnhancedHealth AWSElasticBeanstalkService –

+0

Nein das sind Rollen Ich wollte die Sicherheitsgruppe für Ihre EC2-Instanzen. – error2007s

Antwort

2

Aus Ihrer Frage Beschreibung und die Sicherheitsgruppe Einstellungen, die Sie mir Ihre einzigen Inbound-Port 80 für Ihre EC2-Instanz war offen für Welt durch die Firewall senden und Sie wurden unter Verwendung von Port 5000 für Ihre Bewerbung. Mit der Sicherheitsregel, die ich Ihnen gegeben habe, hat es auch den Inbound-Port 5000 für Ihre EC2-Instanz geöffnet, so dass Ihre Anwendung ohne obigen Fehler zu arbeiten anfing.

+0

Soll der Datenverkehr nicht über Port 80 in den Server gelangen und 'nginx' den Datenverkehr zum eingebetteten Anwendungsserver auf Port 5000 weiterleiten? Es scheint, als würdest du Port 5000 nicht offen legen wollen. Ich frage mich, ob das funktionieren würde, wenn du eine Regel für Port 5000 mit "127.0.0.1/0" hinzufügen würdest. Auf http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html wird dies nicht erwähnt – Snekse