Входной контроллер Nginx не сохраняет URL при перенаправлении - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь настроить входной контроллер nginx;Вот пример входа:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-rules
  namespace: default
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/force-ssl-redirect: "false"

spec:
  rules:
  - host: 
    http:
      paths:
      - path: /discover-service
        backend:
          serviceName: discover-service
          servicePort: discover-port

Когда я нажимаю http://IP/discover-service, он показывает HTML без CSS и JS.Как я вижу, они выглядят под http://IP/eureka/css/file.css вместо http://IP/discover-service/css/file.css.

Как я могу сохранить исходный URL в этом случае?

ОБНОВЛЕНИЕ # 1

Теперь я могу обслуживать статические файлы, создав два входа, например:

ingress-rules-discover-root.yaml

[..]
metadata:
  name: ingress-rules-discover-root

  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    [...]

spec:
  rules:
  - host: 
    http:
      paths:

      - path: /discover-service
        backend:
          serviceName: discover-service
          servicePort: discover-port

и еще один

[...]
metadata:
  name: ingress-rules-discover-path
  namespace: default
  annotations:
    kubernetes.io/ingress.class: nginx
    [...]

spec:
  rules:
  - host: 
    http:
      paths:
      - path: /eureka
        backend:
          serviceName: discover-service
          servicePort: discover-port

1 Ответ

0 голосов
/ 01 октября 2018

Я считаю, что в этом случае вам необходимо удалить аннотацию:

nginx.ingress.kubernetes.io/rewrite-target: /

Эта аннотация заставляет входную переменную перезаписывать http://IP/discover-service/css/file.css в http://IP/eureka/css/file.css

...