higress(envoy)路由匹配仅支持顺序匹配,不支持最长匹配对吗?

higress(envoy)路由匹配仅支持顺序匹配,不支持最长匹配对吗?

展开
收起
嘟嘟嘟嘟嘟嘟 2023-12-07 07:56:20 141 分享 版权
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Higress,作为基于阿里内部两年多的 Envoy Gateway 实践沉淀的云原生网关,其路由匹配主要按顺序进行。当处理 HTTP 请求时,首先会将 host 或者 :authority 头与虚拟主机进行匹配,然后在该虚拟主机内按序检查每个路由条目。如果找到匹配项,则使用该路由并停止进一步的检查。此外,它还可以独立地按序检查虚拟主机中的每个虚拟集群。

    然而,对于最长匹配原则,目前没有明确的证据表明 Higress 或 Envoy 路由匹配是否支持这一特性。因此,在配置路由时,建议密切关注官方文档和最佳实践,以确保正确地实现所需的路由匹配逻辑。

    2023-12-07 14:00:28
    赞同 展开评论
  • 2023-12-07 10:44:21
    赞同 展开评论
  • Higress(基于Envoy)的路由匹配默认情况下是顺序匹配。这意味着,配置文件中的路由规则将按照它们在文件中出现的顺序进行评估。当一个请求到来时,Higress会从上到下检查每个路由规则,并使用第一个满足条件的规则。

    尽管Higress本身不支持最长匹配策略,但可以通过一些技巧来实现类似的功能。例如,你可以创建多个路由规则,其中每个规则都具有特定的前缀,这些前缀按照长度递减的顺序排列。这样,更具体的路由(即具有较长前缀的路由)将在配置文件中较早出现,从而优先被匹配。

    然而,请注意这种做法可能会导致配置文件变得复杂,并且可能无法达到与真正的最长匹配完全相同的效果。在某些情况下,你可能需要考虑是否可以重新组织你的路由规则,以适应Higress的顺序匹配机制,或者考虑使用其他解决方案来满足你的需求。

    2023-12-07 09:09:47
    赞同 1 展开评论
问答地址: