Kubernetes nginx переписать проблему - PullRequest
0 голосов
/ 16 октября 2019
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
    namespace: default
    name: my-ingress
    annotations:
       kubernetes.io/ingress.class: nginx
       nginx.ingress.kubernetes.io/rewrite-target: $2
spec:
  rules:
    - host: hostname.com
      http:
        paths:
          - path: /
            backend:
              serviceName: frontend
              servicePort: 80
          - path: /api/v1(/|$)(.*)
            backend:
              serviceName: backend
              servicePort: 80

Я пытаюсь выполнить следующее:

hostname.com / api / v1 / anyurl должен стать hostname.com/anyurl, когда он перейдет к бэкэнду. hostname.com/anyurl должен остаться hostname.com/anyurl и перейти на веб-интерфейс.

Кажется, что перезапись / api / v1 работает, но любые URL-адреса, идущие во внешний интерфейс, переписываются в /. Что мне нужно, так это правило перезаписи, которое применяется только к пути / api / v1

1 Ответ

0 голосов
/ 16 октября 2019

Я думаю, это должно работать для вас -

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
    namespace: default
    name: my-ingress
    annotations:
       kubernetes.io/ingress.class: nginx
       nginx.ingress.kubernetes.io/rewrite-target: $1
spec:
  rules:
    - host: hostname.com
      http:
        paths:
          - path: /(.*)
            backend:
              serviceName: frontend
              servicePort: 80
          - path: /api/(.*)
            backend:
              serviceName: backend
              servicePort: 80

Я только что отредактировал это, оно работает для меня, пожалуйста, проверьте это. Я думаю, мы можем устранить неполадки

...