我在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只使用最初请求的域名?
感谢。
答案 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)