【问题标题】:Spring boot app not work on AWSSpring Boot 应用程序无法在 AWS 上运行
【发布时间】:2017-04-19 01:00:41
【问题描述】:

我有一个简单的 Spring Boot 应用程序,其中一个控制器返回字符串“hello world”。我创建了 docker 映像,但在 AWS 上部署它时遇到了困难。

我为我的服务创建了实例,添加了安全组并且状态为 UP,但我无法 ping 我的实例并访问我的控制器。

可能是spring boot自动添加tomcat有问题吗?我可以在本地运行 docker 映像,它在 localhost 上启动

【问题讨论】:

  • 请您添加更多信息。
  • 错误堆栈跟踪会很有帮助。不过我有一个预感:在linux上1024以下的端口只能由root打开,所以尝试用sudo运行spring-boot项目。
  • 我到底应该添加什么?我不手动运行我的应用程序。我只从我的应用程序创建了 docker 图像并将其上传到 aws

标签: java amazon-web-services docker spring-boot


【解决方案1】:
  1. 验证您正在运行的端口(默认嵌入式 Tomcat 端口是 8080)
  2. 验证当您运行 Docker 容器时,您正在主机上发布容器端口(例如 docker run -p 8080:8080 myapp)
  3. 安全组端口需要与您发布到的主机端口匹配(例如 8080)
  4. 安全组源需要允许来自您的 IP 地址的流量(允许来自任何地方的流量:0.0.0.0/0)
  5. 确保您已将安全性绑定到您的 EC2 实例。
  6. 通过检查容器日志(例如 docker logs containerId)来验证您的应用是否正在运行

【讨论】:

  • 如果我将图像上传到 AWS,为什么需要运行命令“docker run -p 8080:8080 myapp”?如果我这样做,它将在本地运行我的应用程序
  • 我不知道你在做什么,因为没有包括很多细节。例如,您如何运行 docker 容器、ECS 或通过 EC2 手动运行?您如何在同一个 EC2 实例上上传您的 docker 镜像、ECR 或本地构建?更多细节将极大地帮助我们回答问题。
  • 我按照本教程做所有事情aws.amazon.com/getting-started/tutorials/…
  • 好的,所以您正在使用 ECS。我的猜测是配置错误的负载均衡器。这取决于您使用的是经典 ALB 还是新 ALB。
猜你喜欢
  • 2018-05-13
  • 1970-01-01
  • 2020-10-03
  • 2018-05-08
  • 2021-08-12
  • 2017-02-02
  • 2019-05-02
  • 1970-01-01
  • 2020-11-06
相关资源
最近更新 更多