使者提供静态响应
除了路由和重定向,你还可以用Envoy提供静态响应。
在这种情况下,我想提供一个被禁止的响应(403)。
route_config。
virtual_hosts。
- 名称:picockpit
域。["picockpit.local:443", "picockpit.local"]
航线。
- 匹配。{ prefix:"/demo" }
direct_response。
状态。403
身体。
inline_string:"禁止。"
- 匹配。{prefix:"/"}
路线。{cluster: target_picockpit}.
它还可以从本地文件系统中提供文件作为响应。
参考文献。
- https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/base.proto#envoy-api-msg-core-datasource
- https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#envoy-api-msg-route-directresponseaction
- https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#envoy-api-msg-route-route
PS.如果你遇到错误
初始化配置'/etc/envoy/envoy.yaml'出错。Unable to parse JSON as proto (INVALID_ARGUMENT:(route_config.virtual_hosts[0].routes[2].direct_response.body): invalid value "Forbidden." for type.googleapis.com/envoy.api.2.core.DataSource), 你是想直接在body上设置字符串 - 你必须把它作为body的inline_string的一个子值。见我上面的样本。