我用WildFly后面的AWS负载平衡器。我希望WildFly中的Undertow服务器将http流量重定向到https,并且我可以通过将下面的行放置在undertow-handlers.conf中成功完成此操作:高级TWEAK上暗潮,handlers.conf用于HTTP重定向HTTPS
equals('http',%{i,X-Forwarded -Proto}) - >重定向(https://app.server.com%U)
感谢these folks让我走得这么远!现在这是我想要的调整。有时我使用'dev.server.com'在测试负载均衡器后面运行我的Web应用程序,有时我使用'app.server.com'在生产负载均衡器后面运行它。目前,我必须记住,每次切换平衡器时都要手动编辑undertow-handlers.conf。我希望有一种方法可以将硬编码的“开发”和“应用程序”改为机械。有没有办法告诉Undertow只使用最初请求的域名?
谢谢。
谢谢,@詹姆斯。我尝试在Undertow的%h中替换'dev.server.com',但它不起作用:重定向不再起作用。我猜测%h不是所请求域的确切副本。 –
是的,我猜它可能不是一个确切的副本。 http://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html#getHostString--。如果您使用了高级子系统设置,但您可以在重写过滤器上使用目标属性的表达式。 '目标= “https://开头$ {jboss.host.name:%h}:8443%U”' –