
Tengo una configuración de proxy Envoy funcional que coincide con dos rutas /name/foo/bar?mode=receive-data
y /name/receive-data
. El archivo de configuración de Envoy se parece a esto:
static_resources:
...
filter_chains:
- filters:
- name: envoy.http_connection_manager
typed_config:
...
route_config:
virtual_hosts:
- ...
routes:
- match:
prefix: "/name/foo/bar?mode=receive-data"
...
- match:
prefix: "/name/receive-data"
...
Necesito actualizar la configuración para que no use prefix
la coincidencia de rutas para que regex
coincida como se explica en elruta.RouteMatchdocumentación. Estas dos definiciones de ruta deben convertirse a /:name/foo/bar?mode=receive-data
y /:name/receive-data
de alguna manera, dónde :name
pueden estar [a-z0-9]
. Intenté escribir el mío propio regex:
para esto, pero sin éxito, por lo que agradecería algo de ayuda aquí.
Respuesta1
Para encontrar una ubicación que coincida con una solicitud determinada, nginx primero verifica las ubicaciones definidas utilizando las cadenas de prefijo (ubicaciones de prefijo).
Respuesta2
Según la documentación del 1.13.1:
- match:
safe_regex:
google_re2: {}
regex: "\/.*\/foo\/bar"
route:
cluster: whatever
- match:
safe_regex:
google_re2: {}
regex: "\/.*\/receive-data"
route:
cluster: somethingelse