envoy.yaml esempio di riscrittura http e https
Questo è un primo esempio di lavoro con Envoy. Trovo che la documentazione sia difficile da consultare, quindi cercherò di seguire i miei progressi con post infrequenti sul blog.
Il seguente envoy.yaml funziona per me per la riscrittura http e https a google:
risorse statiche:
ascoltatori:
- indirizzo:
indirizzo_presa:
indirizzo: 0.0.0.0
valore della porta: 80
catene_di_filtri:
- filtri:
- nome: envoy.http_connection_manager
config:
tipo di codec: auto
prefisso statico: ingress_http
route_config:
nome: local_route
virtual_hosts:
- nome: local_service
domini: ["*"]
percorsi:
- match: { prefix: "/" }
route: { host_rewrite: www.google.com, cluster: service_google }
http_filters:
- nome: envoy.router
- indirizzo:
indirizzo_presa:
indirizzo: 0.0.0.0
valore_porta: 443
catene_di_filtri:
- tls_context:
common_tls_context:
tls_certificati:
- certificate_chain: { filename: "/etc/example-com.crt" }
private_key: { nome file: "/etc/example-com.key" }
filtri:
- nome: envoy.http_connection_manager
config:
prefisso statico: ingress_https
route_config:
virtual_hosts:
- nome: default
domini: ["*"]
percorsi:
- match: { prefix: "/" }
route: { host_rewrite: www.google.com, cluster: service_foo }
http_filters:
- nome: envoy.router
gruppi:
- nome: servizio_google
connect_timeout: 0.25s
tipo: LOGICAL_DNS
dns_lookup_family: V4_ONLY
lb_policy: round_robin
host: [{ socket_address: { indirizzo: google.com, port_value: 443 }}]
tls_context: { sni: www.google.com }
- nome: service_foo
connect_timeout: 0.25s
tipo: LOGICAL_DNS
dns_lookup_family: V4_ONLY
lb_policy: round_robin
host: [{ socket_address: { indirizzo: google.com, port_value: 443 }}]
tls_context: { sni: www.google.com }
admin:
percorso_log_accesso: "/tmp/envoy.log"
indirizzo:
indirizzo_presa:
indirizzo: 0.0.0.0
valore_porta: 9901