在underow-handlers.conf中将规则重定向到HTTPS

时间:2016-06-13 14:02:31

标签: redirect wildfly undertow

我在负载均衡器后面有一个Wildfly,它们之间的连接始终是HTTP。客户端和负载均衡器之间的连接可以是HTTP或HTTPS。

负载均衡器设置一个标头(X-Forwarded-Proto)让Wildfly知道客户端正在使用哪种协议。

考虑到上述所有条件,我尝试编写Undertow规则以重定向到HTTPS。

这是我更成功的尝试之一(此规则是在 undertow-handlers.conf 文件中编写的,它是该文件中唯一的内容):

  

正则表达式(' /(。*)')和   正则表达式(模式=' HTTP',值='%{I,X - 转发,原}'全匹配=真) - >   重定向(https://server.com/ $ {1})

当客户端尝试访问以下网址时: http ://server.com/myapp重定向到 https :// server.com,但路径 / myapp 丢失了。

如何修复我的Undertow规则以保持完整路径?

1 个答案:

答案 0 :(得分:4)

尝试:

equals('http', %{SCHEME}) -> redirect(https://server.com/%U)

或者

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

取决于您是否在HTTP侦听器中启用了代理地址转发(如果您有下载将自动处理X-Forwarded-Proto,因此它显示在%{SCHEME}下)。