envoy.yaml Beispiel für http und https Rewriting

Dies ist ein erstes Beispiel für die Arbeit mit envoy. Ich finde es schwierig, in die Dokumentation einzusteigen, daher werde ich versuchen, meine Fortschritte in unregelmäßigen Blogbeiträgen zu verfolgen.

Die folgende envoy.yaml funktioniert bei mir für http und https Rewriting zu Google:

statische_Ressourcen:
   Hörer:
   - Adresse:
       socket_address:
         Adresse: 0.0.0.0
         port_wert: 80
     filter_chains:
     - Filter:
       - Name: envoy.http_connection_manager
         Konfiguration:
           codec_type: auto
           stat_prefix: ingress_http
           route_config:
             Name: lokale_Route
             virtuelle_hosts:
             - Name: local_service
               Domänen: ["*"]
               Routen:
               - übereinstimmen: { prefix: "/" }
                 route: { host_rewrite: www.google.com, cluster: service_google }
           http_filters:
           - Name: envoy.router
   - Adresse:
       socket_address:
         Adresse: 0.0.0.0
         port_wert: 443
     filter_chains:
     - tls_context:
         common_tls_context:
           tls_zertifikate:
           - certificate_chain: { filename: "/etc/example-com.crt" }
             private_key: { Dateiname: "/etc/example-com.key" }
       Filter:
       - Name: envoy.http_connection_manager
         Konfiguration:
           stat_prefix: ingress_https
           route_config:
             virtuelle_hosts:
             - Name: Standard
               Domänen: ["*"]
               Routen:
               - übereinstimmen: { prefix: "/" }
                 route: { host_rewrite: www.google.com, cluster: service_foo }
           http_filters:
           - Name: envoy.router
   Clustern:
   - Name: dienst_google
     connect_timeout: 0.25s
     Typ: LOGICAL_DNS
     dns_lookup_family: V4_ONLY
     lb_policy: round_robin
     hosts: [{ socket_address: { address: google.com, port_value: 443 }}]
     tls_context: { sni: www.google.com }
   - Name: dienstleistung_foo
     connect_timeout: 0.25s
     Typ: LOGICAL_DNS
     dns_lookup_family: V4_ONLY
     lb_policy: round_robin
     hosts: [{ socket_address: { address: google.com, port_value: 443 }}]
     tls_context: { sni: www.google.com }
admin:
   access_log_path: "/tmp/envoy.log"
   Adresse:
     socket_address:
       Adresse: 0.0.0.0
       port_wert: 9901