我正在尝试在我们的 F5 上制定一条规则,以将流量适本地定向到我们的 Tomcat 服务器。我们正在为每个 RESTful 服务部署单独的 WAR 文件。因此,我们希望以以下 URI 为例:
/services/quiz/01234/ /服务/用户/54321/
其中“quiz”和“user”分别是 quiz.war 和 user.war。我们希望将/services/的 F5 级别的流量定向为根,并将 URI 的其余部分定向到 Tomcat 服务器。
我们如何做到这一点?
编辑
资源的浏览器 url 看起来像 http://www.domain.com/services/quiz/01234/
我希望 BIG-IP 将请求作为 http://tomcatserver:8080/quiz/01234/ 发送到 tomcat
所以基本上删除/services 并将其后的所有内容附加到 tomcat 域。我认为这将是一个简单的正则表达式,对吧?
最佳答案
我对我的 iRules 有点生疏,但我认为按照这些思路行事:
when HTTP_REQUEST {
set path [HTTP::path]
regsub "^/services/" $path "/" path
HTTP::path $path
}
请注意,对“/services”(没有尾部斜杠)的请求将按原样传递,而对“/services/”(具有尾部斜杠但没有应用程序)的请求将转到根应用程序。我不确定如何处理这些退化的案例;您可能想要改变这种行为。
顺便说一下,DevCentral有一个很棒的社区致力于帮助人们使用像这样的 iRules。
关于java - F5 规则与 RESTful 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/726907/