Поддержка переписывания (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 |
---|---|
|
|
|
|
Изменения URI для coffee-svc
:
Исходный URI | Переписанный URI |
---|---|
|
|
|
|