
Eu tenho uma configuração de proxy Envoy funcional que corresponde a duas rotas /name/foo/bar?mode=receive-data
e arquivos /name/receive-data
. O arquivo de configuração do Envoy é mais ou menos assim:
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"
...
Preciso atualizar a configuração usando prefix
correspondência de rota para regex
corresponder conforme explicado norota.RouteMatchdocumentação. Estas duas definições de rota devem ser convertidas /:name/foo/bar?mode=receive-data
e /:name/receive-data
de alguma forma, onde :name
podem estar [a-z0-9]
. Tentei escrever o meu próprio regex:
para isso, mas sem sucesso, então gostaria de receber ajuda aqui.
Responder1
Para encontrar o local que corresponde a uma determinada solicitação, o nginx primeiro verifica os locais definidos usando as strings de prefixo (locais de prefixo).
Responder2
De acordo com a documentação em 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