Ejemplo de envoy.yaml para reescribir http y https
Este es un primer ejemplo de trabajo con envoy. Me parece que la documentación es difícil de entrar, por lo tanto, voy a tratar de seguir mi progreso por medio de publicaciones infrecuentes en el blog sobre el tema.
El siguiente envoy.yaml me funciona para la reescritura http y https hacia google:
static_resources:
oyentes:
- dirección:
dirección_de_socket:
dirección: 0.0.0.0
valor_puerto: 80
cadenas_de_filtro:
- filtros:
- nombre: envoy.http_connection_manager
configurar:
codec_type: auto
stat_prefix: ingress_http
route_config:
nombre: ruta_local
virtual_hosts:
- nombre: servicio_local
dominios: ["*"]
rutas:
- coincidencia: { prefijo: "/" }
ruta: { host_rewrite: www.google.com, cluster: service_google }
http_filters:
- nombre: envoy.router
- dirección:
dirección_de_socket:
dirección: 0.0.0.0
valor_de_puerto: 443
cadenas_de_filtro:
- tls_context:
common_tls_context:
tls_certificados:
- cadena_certificada: { nombre de archivo: "/etc/ejemplo-com.crt" }
private_key: { nombre de archivo: "/etc/ejemplo-com.key" }
filtros:
- nombre: envoy.http_connection_manager
configurar:
stat_prefix: ingress_https
route_config:
virtual_hosts:
- nombre: por defecto
dominios: ["*"]
rutas:
- coincidencia: { prefijo: "/" }
ruta: { host_rewrite: www.google.com, cluster: service_foo }
http_filters:
- nombre: envoy.router
racimos:
- nombre: servicio_google
connect_timeout: 0.25s
tipo: LOGICAL_DNS
dns_lookup_family: V4_ONLY
lb_policy: round_robin
hosts: [{ dirección_de_socket: { dirección: google.com, valor_de_puerto: 443 }}]
tls_context: { sni: www.google.com }
- nombre: service_foo
connect_timeout: 0.25s
tipo: LOGICAL_DNS
dns_lookup_family: V4_ONLY
lb_policy: round_robin
hosts: [{ dirección_de_socket: { dirección: google.com, valor_de_puerto: 443 }}]
tls_context: { sni: www.google.com }
admin:
access_log_path: "/tmp/envoy.log"
dirección:
dirección_de_socket:
dirección: 0.0.0.0
valor_puerto: 9901