Я не могу заставить свои основные веб-сайты asp.net работать за входным контроллером ngnix в Кубернетесе.Я могу просматривать сайт, но все ссылки, CSS и изображения не работают.
Мой контроллер Ingress выглядит следующим образом
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: apps-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host:
http:
paths:
- path: /web(/|$)(.*)
backend:
serviceName: web-service
servicePort: 80
- path: /middle(/|$)(.*)
backend:
serviceName: middle-api-service
servicePort: 80
Я также настроил свой сайт на использование перенаправленных заголовков
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.All
});
Я могу перейти на сайт по адресу {proxyaddress}/web
Это загружает сайт, но все ссылки, CSS и изображения перестают работать, когда они идут на адрес корневого прокси без /web
, который является настроенным путем для входного контроллера.
Я вывел заголовки, которые получает веб-сайт, и я вижу:
header X-Real-IP - val: 10.240.0.4
header X-Forwarded-For - val: 10.240.0.4
header X-Forwarded-Host - val: {ProxyAddress}
header X-Forwarded-Port - val: 443
header X-Forwarded-Proto - val: https
header X-Original-URI - val: /web/
header X-Scheme - val: https
Я вижу заголовок X-Original-URI
имеет значение /web
, которое мой сайт должен использовать какего база для всех ссылок.
Я пробовал app.UsePathBase("/web");
и
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedForHeaderName = "X-Original-URI",
OriginalForHeaderName = "X-Original-URI",
OriginalHostHeaderName = "X-Original-URI",
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
Кажется, ничего не работает, и я не могу найти в Интернете никакой информации о том, что мне нужно настроить, чтобы веб-сайт работал в соответствии с/web
путь настроен прокси?