We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
目前需要以 Wasm 插件的方式实现 rewrite #334 和 header control #335,来为用户提供更灵活的控制模式。
而两者均需要修改请求头信息(例如 rewrite 需要修改 :authority, :path)。在 Wasm 插件中如果修改头部信息,会使得 HCM (Http Connection Manager) 在开始执行 http filter chain 之前设置的 cached route 被清除、并重新选择,这将导致无法正确路由到原本的上游(详细请见 HTTP filter chain processing)。
:authority
:path
另外,rewrite 和 header control 注解分别是通过 RouteAction 和 Route 层级的 envoy 配置实现的,它们应该都是在路由确定之后、转发到上游之前这个时间节点内对头部信息进行修改。
因此,为了让 rewrite, header control Wasm 插件能够达到预期效果,我们需要为 Wasm 提供某种控制机制,保证原本的缓存路由不被重新设置。
在 envoy 侧实现暂停清理 cached route 的开关(可能还涉及其他控制机制),并为 Wasm 插件提供 API。
The text was updated successfully, but these errors were encountered:
johnlanni
No branches or pull requests
Why do you need it?
目前需要以 Wasm 插件的方式实现 rewrite #334 和 header control #335,来为用户提供更灵活的控制模式。
而两者均需要修改请求头信息(例如 rewrite 需要修改
:authority
,:path
)。在 Wasm 插件中如果修改头部信息,会使得 HCM (Http Connection Manager) 在开始执行 http filter chain 之前设置的 cached route 被清除、并重新选择,这将导致无法正确路由到原本的上游(详细请见 HTTP filter chain processing)。另外,rewrite 和 header control 注解分别是通过 RouteAction 和 Route 层级的 envoy 配置实现的,它们应该都是在路由确定之后、转发到上游之前这个时间节点内对头部信息进行修改。
因此,为了让 rewrite, header control Wasm 插件能够达到预期效果,我们需要为 Wasm 提供某种控制机制,保证原本的缓存路由不被重新设置。
How could it be?
在 envoy 侧实现暂停清理 cached route 的开关(可能还涉及其他控制机制),并为 Wasm 插件提供 API。
The text was updated successfully, but these errors were encountered: