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 应用程序版本

Elastic Beanstalk 防止文件覆盖

停止和启动 Elastic Beanstalk 服务

Cloudformation 协助 Elastic Beanstalk 和 Application Load Balancer

Elastic Beanstalk 和 Dockerfile ARG 指令