So zwingen Sie den Nginx Ingress-Controller, mit HTTP 426 auf veraltete Routen zu antworten

So zwingen Sie den Nginx Ingress-Controller, mit HTTP 426 auf veraltete Routen zu antworten

Ich habe den folgenden Ingress für meinen Namespace auf Kubernetes mit Pfaden/api/1.0/Umleitung zu meinem alten Dienst und der Rest Umleitung zum neuen. Bevor ich meinen alten Dienst verwerfe und lösche, möchte ich, dass Nginx nur auf den folgenden Dienst mit einem HTTP 426-Umleitungsfehlercode antwortet:/api/1.0/Pfade.

Wie kann ich das machen ?

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: xxx-ingress
  namespace: xxx-ingress
  annotations:
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
    nginx.ingress.kubernetes.io/proxy-next-upstream: "error timeout http_502 non_idempotent"
    nginx.ingress.kubernetes.io/proxy-pass-headers: "Content-Length"
spec:
  ingressClassName: nginx
  tls:
  - hosts:
    - api.xxx.com
    - www.xxxcom
    secretName: xxx-ingress-tls
  rules:
    - host: api.xxx.com
      http:
        paths:
          - path: /api/1.0/users/password/reset/token
            pathType: ImplementationSpecific
            backend:
              service:
                name: old-service
                port:
                  number: 80
          - path: /api/1.0/users/login
            pathType: ImplementationSpecific
            backend:
              service:
                name: old-service
                port:
                  number: 80
          - path: /api/1.0/users/request_migration_sync
            pathType: ImplementationSpecific
            backend:
              service:
                name: old-service
                port:
                  number: 80
          - path: /api/1.0/users/migrate
            pathType: ImplementationSpecific
            backend:
              service:
                name: old-service
                port:
                  number: 80
          - path: /
            pathType: ImplementationSpecific
            backend:
              service:
                name: new-service
                port:
                  number: 80
    - host: www.xxx.com
      http:
        paths:
          - path: /
            pathType: ImplementationSpecific
            backend:
              service:
                name: new-service
                port:
                  number: 80

verwandte Informationen