Elastic Beanstalk 和 Spring Boot 将 HTTP 重定向到 HTTPS
Posted
技术标签:
【中文标题】Elastic Beanstalk 和 Spring Boot 将 HTTP 重定向到 HTTPS【英文标题】:Elastic Beanstalk and Spring Boot Redirect HTTP to HTTPS 【发布时间】:2019-09-21 12:06:59 【问题描述】:我有一个 Spring Boot 应用程序,其中已编译的 JAR 部署到弹性 beanstalk。
我有一个负载均衡器实例。在这个实例上,我在端口 443 上有一个侦听器,为端口 80 上的 EC2 实例提供 HTTPS。(HTTPS 在负载均衡器处终止)。
在 EB 中,我配置了相同的负载均衡器侦听器。当我使用 HTTPS 向服务器发出请求时,一切都很好。
我想知道如何在确保任何 HTTP 请求转发到 HTTPS 的同时保留此功能,以便负载均衡器实例可以使用 HTTPS 处理它。
【问题讨论】:
【参考方案1】:Elastic Beanstalk 使用 nginx 作为反向代理,将您的应用程序映射到端口 80 上的 Elastic Load Balancing 负载均衡器。Elastic Beanstalk 提供默认 nginx 配置,您可以使用自己的配置扩展或完全覆盖该配置。
要扩展 Elastic Beanstalk 的默认 nginx 配置,请将 .conf 配置文件添加到应用程序源包中名为 .ebextensions/nginx/conf.d/ 的文件夹中。 Elastic Beanstalk 的 nginx 配置自动在此文件夹中包含 .conf 文件。
参考link
将以下块添加到 .ebextensions/nginx/nginx.conf 并重新部署
server
listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
【讨论】:
以上是关于Elastic Beanstalk 和 Spring Boot 将 HTTP 重定向到 HTTPS的主要内容,如果未能解决你的问题,请参考以下文章
Elastic Beanstalk、Docker 和持续集成
Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本
Cloudformation 协助 Elastic Beanstalk 和 Application Load Balancer