【发布时间】:2014-12-07 15:43:42
【问题描述】:
我正在 AWS 中运行 Spring Boot 应用程序。该应用程序在弹性负载均衡器 (ELB) 后面运行。 ELB 配置为使用https(端口443)到外部世界,但通过http(端口8080)到应用程序。 ELB 配置为通过x-forwarded-proto 标头。我正在使用 Jetty 9.0.0.M0,使用 Spring Boot 1.1.5 RELEASE。
我似乎收到了通过 ELB 从应用程序返回的错误重定向,其中重定向响应返回为 http,而不是 https。现在,我读到 here 应该将“转发”标题设置为 true 使用:
<Set name="forwarded">true</Set>
我看不到如何在 Spring Boot 中使用嵌入式版本的 Jetty 执行此操作,因为我的源代码中没有 XML 配置文件。
我查看了EmbeddedServletContainerCustomizer 基础架构,但我仍然无法获得正确的咒语来使此设置正常工作。
该应用程序是在 AWS https 环境之外构建和测试的,因此该应用程序还需要透明地使用 http。无需通过 ELB 即可直接访问应用程序端点。只是 ELB 到应用程序的路由不起作用。
有什么想法吗?
【问题讨论】:
-
Jetty 9.0.0.M0 不是 Jetty 9 的稳定版本。(实际上,它是一个预发布/里程碑 0)。升级
-
如何使用 Spring Boot 自定义 ServerConnector 及其关联的 HttpConfigurations? (显示代码)
标签: spring amazon-web-services https jetty