3

我試圖在AWS Elastic Beanstalk上使用AWS的Java配置(不是它們的Tomcat配置)部署一個非常簡單的Spring Boot應用程序,但我一直收到502錯誤以下日誌:部署在Elastic Beanstalk上的Spring Boot應用程序Java環境返回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" 

我試着通過Spring的application.properties我的端口設置什麼日誌似乎想(5000,使用server.port=5000)和已驗證了我的應用程序成功運行在本地主機端口上。

This question是非常相似,除了我部署JAR而不是WAR。似乎有些事情我錯過了配置Nginx,我不知道如何繼續。

這裏是我的Spring應用程序:

@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

你能粘貼您的安全組規則? – error2007s

+0

我不知道這是否是你問什麼,但我有兩個角色: 角色:AWS-elasticbeanstalk-EC2角色 權限: AWSElasticBeanstalkWebTier AWSElasticBeanstalkMulticontainerDocker AWSElasticBeanstalkWorkerTier 角色:AWS-elasticbeanstalk服務角色 權限: AWSElasticBeanstalkEnhancedHealth AWSElasticBeanstalkService –

+0

沒有這是角色我希望安全組適用於您的EC2實例。 – error2007s

回答

2

從你的問題的說明和安全組設置,你給我你的唯一的入站端口80爲您的EC2實例通過防火牆是開放的世界,你正在使用的端口5000你的申請。所以使用我給你的安全規則,它也爲你的EC2實例打開了入站端口5000,這樣你的應用程序就開始工作,沒有出現上述錯誤。

+0

流量是否應該通過端口80進入服務器,'nginx'會將流量轉發到端口5000上的嵌入式應用服務器?看起來你不想公開端口5000.我想知道如果你爲端口5000添加了一個規則「127.0.0.1/0」,這是否會工作。 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html上沒有提到這一點。 – Snekse

相關問題