我在 AWS 负载均衡器后面使用 WildFly。我希望 WildFly 中的 Undertow 服务器将 http 流量重定向到 https,我可以通过在 undertow-handlers.conf 中放置以下行来成功地做到这一点:
等于('http', %{i,X-Forwarded-Proto}) -> 重定向( https://app.server.com%U )
感谢these folks让我走到这一步!现在这是我想要的调整。有时我使用“dev.server.com”在测试负载平衡器后面运行我的 Web 应用程序,有时我使用“app.server.com”在生产负载平衡器后面运行它。目前,我必须记住在每次切换平衡器时手动编辑 undertow-handlers.conf。我希望有一种方法可以将硬编码的“dev”和“app”更改为机械的东西。有没有办法告诉 Undertow 只使用最初请求的域名?
谢谢。
最佳答案
幸运的是,undertow 配置让您可以通过 Exchange Attributes 访问请求 header 。 ,您已经在使用它来访问 X-Forwarded-Proto
header 。所以解决方案是简单地使用请求中的 Host
header ,如下所示:
equals('http', %{i,X-Forwarded-Proto}) -> redirect(https://%{i,Host}%U)
关于wildfly - 对 Undertow-handlers.conf 进行 http https 重定向的高级调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45279421/