Weiterleiten & Umleiten mit envoy
Ein Beispiel envoy.yaml, das zeigt, wie man routen und umleiten kann.
Es gibt verschiedene Möglichkeiten, siehe hier
https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-redirectaction
Diese envoy.yaml leitet /taxgod und /taxgod/ (das zweite könnte wahrscheinlich weggelassen werden, da das erste auch dazu passen sollte, denke ich) an einen neuen Port und ein anderes Protokoll weiter.
/picockpit wird einfach auf / umgeleitet.
und schließlich wird / an das target_picockpit-Backend weitergeleitet
statische_Ressourcen: Hörer: - Adresse: socket_address: Adresse: 0.0.0.0 port_wert: 80 filter_chains: - filter: - name: envoy.http_connection_manager config: codec_type: auto stat_präfix: ingress_http route_config: virtual_hosts: - name: backend domains: ["*"] Routen: - match: { prefix: "/" } redirect: path_redirect: "/" https_redirect: wahr http_filters: - name: envoy.router config: {} - Adresse: socket_address: Adresse: 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: { dateiname: "/etc/example-com.key" } alpn_protocols: [ "h2,http/1.1" ] Filter: - name: envoy.http_connection_manager config: stat_prefix: ingress_https route_config: virtual_hosts: - name: backend domains: ["*"] Routen: - match: { prefix: "/taxgod" } redirect: { port_redirect: 2080, path_redirect: "/", scheme_redirect: "http"} - match: { prefix: "/taxgod" } redirect: { port_redirect: 2080, path_redirect: "/", scheme_redirect: "http"} - match: { prefix: "/picockpit/" } redirect: { path_redirect: "/" } - match: { prefix: "/picockpit" } redirect: { path_redirect: "/" } - match: { prefix: "/gagarin" } direct_response: { status: 200, body: { inline_string: "Bringing redemption to my dark night. Beautiful surrender is where I wanna be." } } - match: { prefix: "/" } route: { cluster: ziel_picockpit } http_filters: - name: envoy.router config: {} clusters: - name: target_taxgod connect_timeout: 0.25s typ: strict_dns lb_policy: round_robin Hosts: - socket_address: Adresse: taxgod port_value: 3000 - name: ziel_picockpit connect_timeout: 0.25s typ: strict_dns lb_policy: round_robin Hosts: - socket_address: Adresse: picockpit port_wert: 3000 admin: access_log_path: "/tmp/envoy.log" adresse: socket_address: Adresse: 0.0.0.0 port_wert: 9901