Поддержка переписывания (rewrites)#
ANIC позволяет преобразовывать (переписывать) URI запроса перед отправкой в приложение.
Например, путь запроса  В следующем примере нагрузка между двумя приложениями, требующими изменения URI,
балансируется с помощью префиксного сопоставления: Изменения URI для  Исходный URI Переписанный URI Изменения URI для  Исходный URI Переписанный URI Если путь представляет собой регулярное выражение, а не префикс или точное соответствие,
 Пример: В этом примере группа захвата  Примеры изменения URI для  Исходный URI Переписанный URI/tea/green может быть перезаписан как /green.
Для настройки изменения URI необходимо использовать ActionProxy
в VirtualServer или VirtualServerRoute.Пример с префиксом в пути#
apiVersion: k8s.angie.software/v1
kind: VirtualServer
metadata:
  name: cafe
spec:
  host: cafe.example.com
  upstreams:
  - name: tea
    service: tea-svc
    port: 80
  - name: coffee
    service: coffee-svc
    port: 80
  routes:
  - path: /tea/
    action:
      proxy:
        upstream: tea
        rewritePath: /
  - path: /coffee
    action:
      proxy:
        upstream: coffee
        rewritePath: /beans
tea-svc (обратите внимание,
что запросы к /tea перенаправляются на /tea/ с добавлением косой черты в конце):/tea///tea/abc/abccoffee-svc:/coffee/beans/coffee//beans//coffee/abc/beans/abcПример с регулярными выражениями#
rewritePath может содержать группы захвата $1-9.apiVersion: k8s.angie.software/v1
kind: VirtualServer
metadata:
  name: cafe
spec:
  host: cafe.example.com
  upstreams:
  - name: tea
    service: tea-svc
    port: 80
  routes:
  - path: ~ /tea/?(.*)
    action:
      proxy:
        upstream: tea
        rewritePath: /$1
(.*) используется в rewritePath как /$1.
Это необходимо для передачи оставшейся части URI запроса (после /tea).tea-svc:/tea//tea///tea/abc/abc