Rotta e reindirizzamento con envoy
Un esempio di envoy.yaml che mostra come instradare e reindirizzare.
Ci sono diverse opzioni, vedi qui
https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-redirectaction
Questo envoy.yaml instrada /taxgod e /taxgod/ (il secondo potrebbe probabilmente essere omesso perché anche il primo dovrebbe corrispondere, credo) a una nuova porta e a un protocollo diverso.
/picockpit è semplicemente reindirizzato a /
e poi finalmente / viene indirizzato al backend target_picockpit
risorse statiche: ascoltatori: - indirizzo: socket_address: indirizzo: 0.0.0.0 valore_porta: 80 catene_filtro: - filtri: - nome: envoy.http_connection_manager config: codec_type: auto prefisso: ingress_http route_config: virtual_hosts: - nome: backend domini: ["*"] route: - match: { prefix: "/" } redirect: path_redirect: "/" https_redirect: true http_filters: - nome: envoy.router config: {} - address: socket_address: indirizzo: 0.0.0.0 valore_porta: 443 catene_filtro: - tls_context: common_tls_context: tls_certificates: - certificate_chain: { filename: "/etc/example-com.crt" } private_key: { nome file: "/etc/example-com.key" } alpn_protocols: [ "h2,http/1.1" ] filtri: - nome: envoy.http_connection_manager config: stat_prefix: ingress_https route_config: virtual_hosts: - nome: backend domini: ["*"] route: - match: { prefisso: "/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: "Portare la redenzione nella mia notte oscura. Bella resa è dove voglio essere". } } - match: { prefix: "/" } route: { cluster: target_picockpit } http_filters: - nome: envoy.router config: {} cluster: - nome: target_taxgod connect_timeout: 0.25s tipo: strict_dns lb_policy: round_robin host: - socket_address: indirizzo: taxgod valore_porta: 3000 - nome: target_picockpit connect_timeout: 0.25s tipo: strict_dns lb_policy: round_robin host: - socket_address: indirizzo: picockpit valore_porta: 3000 admin: access_log_path: "/tmp/envoy.log" address: socket_address: indirizzo: 0.0.0.0 valore_porta: 9901