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

相关问题