提问人:Andrius Nikulinas 提问时间:11/13/2023 更新时间:11/13/2023 访问量:29
为什么需要在 AWS Beanstalk 中设置 SERVER_PORT:5000 才能使 Spring Boot 应用程序正常工作?
Why I need set SERVER_PORT:5000 in AWS Beanstalk to make Spring Boot app to work?
问:
我有一个简单的 CRUD Spring Boot 应用程序,我想通过 Beanstalk 将其部署到 AWS。
如果我遵循默认步骤并且只选择自定义 VPC - 应用程序不起作用。
如果我做同样的事情并在环境变量中设置 SERVER_PORT: 5000 - 应用程序正在工作,我可以使用我的 API。
我有 2 个问题:
- 为什么我需要将SERVER_PORT设置为 5000?
- 为什么它现在在端口 80 而不是 8080 上工作,因为它是它在本地运行的默认端口?
我通过添加 env 变量解决了这个问题,但我想知道为什么我必须这样做。
答:
2赞
Mark B
11/13/2023
#1
默认情况下,Spring Boot 侦听 port 。但是,默认情况下,Elastic Beanstalk 环境在端口上运行反向代理服务器,并在端口上将流量转发到您的应用程序。因此,要将流量正确地代理到您的应用程序,您必须将反向代理修改为转发到端口,或者只需将环境变量(Spring Boot自动检测并用于配置它侦听的端口)设置为port 。8080
80
5000
8080
SERVER_PORT
5000
此处记录了更多详细信息。
评论
0赞
Andrius Nikulinas
11/13/2023
感谢您的回复。如何配置反向代理,使其可以在默认的 8080 端口或我选择的任何端口上运行?
1赞
Mark B
11/13/2023
这更难,也不推荐,但如果你想走这条路,它看起来像这里的答案:stackoverflow.com/questions/62299458/......
评论