У меня возникают проблемы при использовании пути для указания на другую службу Kubernetes.
Я указываю на дополнительную службу, используя путь /secondary-app, и в своих журналах я вижу, что правильно обращаюсь к этой службе.
Моя проблема заключается в том, что любой включенный ресурс на сайте, скажем, /css/main.css, например, не найден, что приводит к ошибке 404.
Вот урезанная версия моего входа:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/proxy-body-size: 50m
nginx.ingress.kubernetes.io/rewrite-target: /
name: my-app
spec:
rules:
- host: my-app.example.com
http:
paths:
- backend:
path: /
serviceName: my-app
servicePort: http
- backend:
path: /secondary-app
serviceName: secondary-app
servicePort: http
Я пробовал несколько вещей и еще не смог заставить это работать. Может быть, мне нужно сделать некоторые перезаписи apache?
Любая помощь будет оценена по достоинству.
Изменить — Решение
Благодаря некоторой помощи от @mk_sta я смог заставить мое вторичное сервисное приложение работать, используя аннотацию nginx.ingress.kubernetes.io/configuration-snippet
следующим образом:
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($request_uri = '/?%secondary-app') { rewrite /(.*) secondary-app/$1 break; }
Это все еще нуждается в небольшой настройке для моего конкретного приложения, но это сработало именно так, как мне нужно.