无法访问EBS上托管的Spring启动应用程序

时间:2017-08-05 20:18:01

标签: java spring spring-boot amazon-ec2 elastic-beanstalk

我在AWS elastic-beanstalk上托管了我的Spring启动应用程序,但是当我尝试使用公共URL访问它时,它给了我502网关错误。 在日志中,我可以看到以下错误:     2017/08/05 20:10:33 [错误] 22965#0:* 157 connect()失败(111:拒绝连接)     连接到上游,客户端:XXX.68.241.XXX,服务器:,请求:" GET /swagger-ui.html     HTTP / 1.1",上游:" http://127.0.0.1:5000/swagger-ui.html",主持人:     " XXXXXXXX-env.XXX.us-west-2.elasticbeanstalk.com"

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;

events {
  worker_connections 1024;
}

http {
  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';


  upstream tomcat_servers{
    ip_hash;
    server 127.0.0.1:5000;
    keepalive 256;
  }

  access_log  /var/log/nginx/access.log  main;

  sendfile            on;
  tcp_nopush          on;
  tcp_nodelay         on;
  keepalive_timeout   65;
  types_hash_max_size 2048;

  include             /etc/nginx/mime.types;
  default_type        application/octet-stream;


}

1 个答案:

答案 0 :(得分:0)

我会仔细检查运行Spring启动应用程序的端口。

  

默认情况下,Spring Boot应用程序将侦听端口8080. Elastic Beanstalk假定应用程序将侦听端口5000.有两种方法可以解决此差异:更改Elastic Beanstalk配置为使用的端口,或更改端口Spring Boot应用程序监听。对于这篇文章,我们将更改Spring Boot应用程序侦听的端口。

     

最简单的方法是在Elastic Beanstalk环境中指定SERVER_PORT环境变量并将值设置为5000.(配置属性名称为server.port,但Spring Boot允许您指定更多环境变量 - 友好的名字)。

https://aws.amazon.com/blogs/devops/deploying-a-spring-boot-application-on-aws-using-aws-elastic-beanstalk/

Answered here as well

Help on how to update the port