为什么需要在 AWS Beanstalk 中设置 SERVER_PORT:5000 才能使 Spring Boot 应用程序正常工作?

Why I need set SERVER_PORT:5000 in AWS Beanstalk to make Spring Boot app to work?

提问人:Andrius Nikulinas 提问时间:11/13/2023 更新时间:11/13/2023 访问量:29

问:

我有一个简单的 CRUD Spring Boot 应用程序,我想通过 Beanstalk 将其部署到 AWS。

如果我遵循默认步骤并且只选择自定义 VPC - 应用程序不起作用。

如果我做同样的事情并在环境变量中设置 SERVER_PORT: 5000 - 应用程序正在工作,我可以使用我的 API。

我有 2 个问题:

  1. 为什么我需要将SERVER_PORT设置为 5000?
  2. 为什么它现在在端口 80 而不是 8080 上工作,因为它是它在本地运行的默认端口?

我通过添加 env 变量解决了这个问题,但我想知道为什么我必须这样做。

amazon-web-services spring-boot amazon-elastic-beanstalk

评论


答:

2赞 Mark B 11/13/2023 #1

默认情况下,Spring Boot 侦听 port 。但是,默认情况下,Elastic Beanstalk 环境在端口上运行反向代理服务器,并在端口上将流量转发到您的应用程序。因此,要将流量正确地代理到您的应用程序,您必须将反向代理修改为转发到端口,或者只需将环境变量(Spring Boot自动检测并用于配置它侦听的端口)设置为port 。80808050008080SERVER_PORT5000

此处记录了更多详细信息。

评论

0赞 Andrius Nikulinas 11/13/2023
感谢您的回复。如何配置反向代理,使其可以在默认的 8080 端口或我选择的任何端口上运行?
1赞 Mark B 11/13/2023
这更难,也不推荐,但如果你想走这条路,它看起来像这里的答案:stackoverflow.com/questions/62299458/......