Поддержка Istio HTTPRedirect Capture Group - PullRequest
0 голосов
/ 17 октября 2019

Примечание. Мне кажется, что это не поддерживается в Istio, но мне любопытно, поддерживает ли какой-либо другой обратный прокси-сервер эту функцию, кроме NGINX?

Я пытаюсь перенаправить запросы с регулярного выражения: /abc/(?<appname>.*)? на /cba/$appname в VirtualService в Istio. Это кажется тривиальной проблемой, если предположить, что Istio должен заменить NGINX Ingresses, поэтому кажется, что в их документах об этой проблеме не упоминают особо.

Я нашел несколько других постов, в которых говорится о похожих проблемах, но я хочу получить явный ответ, который не поддерживается.

У меня есть следующий рабочий пример, который просто перенаправляет регулярное выражение /abc/.* на статический адрес /cba/.

http:
- match:
  - uri:
      regex: /abc/.*?
    ignoreUriCase: true
  rewrite:
    uri: /cba/
- match: 
  - uri: 
      prefix: /
  route: 
  - destination:
      host: service_name

Добавление группы захвата в регулярное выражение URI: /abc/(?<hello>.+)? приводит к следующей ошибке, несмотря на синтаксически правильное регулярное выражение.

gRPC config for type.googleapis.com/envoy.api.v2.RouteConfiguration rejected: Invalid regex '/abc/(?<hello>.+)?': One of *?+{ was not preceded by a valid regular expression.

IsЕсть что-то, чего мне не хватает, или какие-либо указатели на поиск решения этой проблемы?

Также обратите внимание: в документации для HTTPRewrite указано, что поле uri должно быть строкой, что также заставляет меня беспокоиться, что эта функция не поддерживается.

Я пытался просмотреть документацию Envoy, и кажется, что они не поддерживают ее? Есть ли способ извлечь поля из регулярного выражения в любом обратном прокси, кроме NGINX?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...