Я использую k8s с входом nginx. Он указывает https://www.example.com/app на какой-то модуль с перезаписью "/ app" на "/", приложение прослушивает 80 и обслуживает "/":
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /
labels:
app: example
name: example
namespace: default
spec:
rules:
- host: www.example.com
http:
paths:
- backend:
serviceName: app
servicePort: 80
path: /app
- backend:
serviceName: app
servicePort: 80
path: /app/
tls:
- hosts:
- www.example.com
secretName: example-tls
Если я собираюсь на https://www.example.com/app запрос, переданный модулю, и модуль ответил другим URL-адресом (например, / content), и мой браузер показывает мне https://www.example.com/content - это 404, потому что есть нет входного правила для "/ content". AFAIK nginx может переписать ответ с помощью sub_filter. Другой способ - разработать приложение с настраиваемым префиксом пути. Также я могу использовать base_url, но только с HTML. Но есть ли простой способ передать префикс взамен, поэтому, если pod return "/ content", nginx переписывает его в https://www.example.com/app/content
Спасибо.