用于http https重定向的Undertow-handlers.conf的高级调整

时间:2017-07-24 11:26:10

标签: wildfly undertow

我在AWS负载均衡器后面使用WildFly。我希望WildFly中的Undertow服务器将http流量重定向到https,我可以通过在underow-handlers.conf中放置以下行来成功完成此操作:

等于(' http',%{i,X-Forwarded-Proto}) - >重定向(https://app.server.com%U

感谢these folks让我这么远!现在,这是我想要的调整。有时我使用' dev.server.com'在测试负载均衡器后面运行我的Web应用程序。有时我会使用&app ;server.com在app.server.com后面的生产负载均衡器后面运行它。'目前,我必须记得在任何时候切换平衡器时手动编辑underow-handlers.conf。我希望有办法改变硬编码的“开发者”。和' app'机械的东西。有没有办法告诉Undertow只使用最初请求的域名?

感谢。

2 个答案:

答案 0 :(得分:3)

如果要将其作为部署的一部分,请尝试使用重定向表达式中的<span hidden={this.props.hidden}> {this.props.v} </span> 。例如:

%h

另一种选择是配置服务器以便为您处理重定向。假设http的默认端口为8080,https的默认端口为8443,CLI命令将类似于以下内容。

equals('http', %{i,X-Forwarded-Proto}) -> redirect(https://%h%U)

您可以在Undertow documentation中看到所有可能的交换属性。

答案 1 :(得分:3)

值得庆幸的是,通过底层配置,您可以通过Exchange Attributes访问请求标头,您已经用它来访问X-Forwarded-Proto标头。因此,解决方案是简单地使用请求中的Host标头,如下所示:

equals('http', %{i,X-Forwarded-Proto}) -> redirect(https://%{i,Host}%U)