HTTP 路由
Envoy 包括一个 HTTP 路由器过滤器,可以安装该过滤器来执行高级路由任务。这对于处理边缘通信(传统的反向代理请求处理)以及构建服务 Envoy 网格的服务(通常通过在 host/authority HTTP 头上路由以到达特定的上游服务群集) 都很有用。Envoy 还能够被配置为正向代理,在正向代理配置中,网格中的客户端可以通过适当地将其 HTTP 代理交由 Envoy 来处理。在较高的级别上,路由器接收传入的 HTTP 请求,将其与上游群集匹配,获取到上游群集中的主机的连接池,并转发请求。路由器过滤器支持以下功能:
- 将 域/权限 映射到一组路由规则的虚拟主机。
- 前缀和精确路径匹配规则 (区分大小写和不区分大小写)。正则表达式匹配目前暂不支持,主要是因为它们无法通过编程方式确定路由规则是否相互冲突。因此,我们不建议在反向代理级别使用正则表达式进行路由,但我们将来可能会根据需求添加支持。
- 在虚拟主机级别上的 TLS 重定向。
- 路径在路由层上重定向。
- 在路由层直接 (非代理) http 响应。
- 显式主机重写。
- 基于所选上游主机的 DNS 名称自动重写主机。
- 前缀重写。
- 请求重试通过 HTTP 头或通过路由配置指定。
- 通过 http 头或通过路由配置指定的请求超时。
- 流量通过运行时值从一个上游群集转移到另一个群集 (请参阅流量转移/拆分)。
- 使用基于权重的路由在多个上游群集之间拆分的流量 (请参阅流量移位/拆分)。
- 任意HTTP头匹配路由规则。
- 虚拟群集规范。虚拟群集是在虚拟主机级别指定的,Envoy 使用它在标准群集级别上生成其他统计数据。虚拟群集可以使用正则表达式匹配。
- 基于优先级的路由。
- 基于哈希策略的路由。
- 对于非 TLS 转发代理,支持绝对URL。
路由表
HTTP 连接管理器的配置拥有所有配置的 HTTP 过滤器所使用的路由表。尽管路由过滤器是路由表的主要使用者,但其他过滤器也可以访问,如果它们希望根据请求的最终目的地做出决策。例如,内置限流过滤器将参考路由表,以确定是否应根据路由调用全局速率限制服务。连接管理器确保获取路由的所有调用对于特定请求都是稳定的,即使该决策涉及随机性 (例如, 在运行时配置路由规则的情况下) 也是如此。
网友评论