Поддержка переписывания (rewrites)#

ANIC позволяет преобразовывать (переписывать) URI запроса перед отправкой в приложение. Например, путь запроса /tea/green может быть перезаписан как /green. Для настройки изменения URI для ресурса Ingress необходимо использовать аннотацию angie.software/rewrite.

Синтаксис:

angie.software/rewrites: "serviceName=service1 rewrite=rewrite1[;serviceName=service2 rewrite=rewrite2;...]"

В следующем примере нагрузка между двумя приложениями, требующими изменения URI, балансируется с помощью префиксного сопоставления:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: cafe-ingress
  annotations:
    angie.software/rewrites: "serviceName=tea-svc rewrite=/;serviceName=coffee-svc rewrite=/beans/"
spec:
  rules:
  - host: cafe.example.com
    http:
      paths:
      - path: /tea/
        pathType: Prefix
        backend:
          service:
            name: tea-svc
            port:
              number: 80
      - path: /coffee/
        pathType: Prefix
        backend:
          service:
            name: coffee-svc
            port:
              number: 80

Изменения URI для tea-svc (обратите внимание, что запросы к /tea перенаправляются на /tea/ с добавлением косой черты в конце):

Исходный URI

Переписанный URI

/tea/

/

/tea/abc

/abc

Изменения URI для coffee-svc:

Исходный URI

Переписанный URI

/coffee/

/beans/

/coffee/abc

/beans/abc