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
