使用特使的路线和重定向
一个显示如何路由和重定向的 envoy.yaml 示例。
有不同的选择,见这里
https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-redirectaction
这个envoy.yaml将/taxgod和/taxgod/(第二个可能可以省略,因为第一个也应该匹配,我想)路由到一个新的端口和一个不同的协议。
/picockpit 被简单地重定向到 /
然后最后/被路由到target_picockpit后端
static_resources: 听众。 - 地址。 socket_address: 地址。0.0.0.0 port_value: 80 filter_chains: - filters: - name: envoy.http_connection_manager 配置。 codec_type: auto stat_prefix: ingress_http route_config: virtual_hosts: - name: backend 域名。["*"] 路由。 - 匹配。{ prefix:"/" } 重定向。 path_redirect: "/" https_redirect: true http_filters: - name: envoy.router config:{} - address: socket_address: 地址。0.0.0.0 port_value:443 filter_chains: - tls_context: common_tls_context: tls_certificates: - certificate_chain: { filename: "/etc/example-com.crt" } private_key: { 文件名: "/etc/example-com.key" } alpn_protocols:[ "h2,http/1.1" ] 过滤器。 - name: envoy.http_connection_manager 配置。 stat_prefix: ingress_https route_config: virtual_hosts: - name: backend 域名。["*"] 路由。 - 匹配。{ prefix:"/taxgod" } 重定向: { port_redirect: 2080, path_redirect: "/", scheme_redirect: "http" } - 匹配。{ prefix:"/taxgod" } 重定向:{ port_redirect: 2080, path_redirect: "/", scheme_redirect: "http" } - 匹配。{ prefix:"/picockpit/"} 重定向: { path_redirect: "/" } - 匹配。{ prefix:"/picockpit" } 重定向: { path_redirect: "/" } - 匹配。{ prefix:"/gagarin" } direct_response:{ status: 200, body:{ inline_string:"给我的黑夜带来救赎。美丽的投降是我想去的地方。"}} - 匹配。{ prefix:"/" } 路线。{ cluster: target_picockpit } http_filters: - name: envoy.router config:{} 集群。 - name: target_taxgod connect_timeout:0.25s type: strict_dns lb_policy: round_robin hosts: - socket_address: 地址: taxgod port_value:3000 - name: target_picockpit connect_timeout:0.25s 类型: strict_dns lb_policy: round_robin hosts: - socket_address: 地址: picockpit port_value:3000 admin: access_log_path:"/tmp/envoy.log" 地址。 socket_address: 地址。0.0.0.0 port_value: 9901