kubernetes eindringen mit mehreren Ziel-rewrite

In der Regel das eindringen rewrite target funktioniert wie folgt:

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

Dies umschreiben das Ziel, Ihre service-Namen, wie Sie in das root-Verzeichnis. Also wenn ich diese habe:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: demo-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  tls:
  rules:
    http:
      paths:
      - path: /
        backend:
          serviceName: front-main
          servicePort: 80
      - path: /api
        backend:
          serviceName: back-main
          servicePort: 80

Meine Dienste zu gehen, um Daten zu empfangen, wie Sie in /. Allerdings würde ich gerne für meinen service front-main zu senden root / und für den server back-main zu senden /someotherpath/. Wie kann ich dies tun?

Gibt es so etwas wie die folgende Zeile?

nginx.ingress.kubernetes.io/rewrite-target: "front-main: /; back-main: /someotherpath"

Ich nicht scheinen, um herauszufinden, die Antwort in der Dokumentation.

InformationsquelleAutor silgon | 2018-03-27



One Reply
  1. 7

    Leider Eindringen basierend auf der freien version von Nginx nicht über diese Funktion.

    Aber, wenn Sie verwenden können,Nginx Plus basiert Eindringen, Sie können es tun, indem annotation.

    Hier ist ein Beispiel aus der offiziellen repo:

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: cafe-ingress
      annotations:
        nginx.org/rewrites: "serviceName=tea-svc rewrite=/;serviceName=coffee-svc rewrite=/beans/"
    spec:
      rules:
      - host: cafe.example.com
        http:
          paths:
          - path: /tea/
            backend:
              serviceName: tea-svc
              servicePort: 80
          - path: /coffee/
            backend:
              serviceName: coffee-svc
              servicePort: 80
    

    Unten sind die Beispiele, wie die URI-Anforderungen an die tea-svc umgeschrieben werden (Beachten Sie, dass die Tee – /Kaffee-Anfragen werden umgeleitet zu /Tee/).

    /tea/-> /
    /tea/abc -> /abc
    

    Unten sind die Beispiele, wie die URI-Anforderungen an die coffee-svc umgeschrieben werden (Beachten Sie, dass der /Kaffee-Anfragen werden umgeleitet zu /Kaffee -/).

    /coffee/-> /beans/
    /coffee/abc -> /beans/abc
    
    • Eigentlich habe ich verwendet, bevor nginxinc/kubernetes-ingress aber ich hatte gehofft, es war eine bessere Lösung.
    • Da dies geschrieben wurde, Nginx Eindringen 0.22.0 veröffentlicht wurde, mit einer neuen syntax für Umleitungen (github.com/kubernetes/ingress-nginx/tree/master/docs/examples/…). Ich denke, die OP, das problem kann jetzt gelöst werden, durch die Wahl der richtigen capture-Gruppen. Vielleicht Antons Beispiel kann auch gelöst werden mit zwei getrennten ingresses mit zwei verschiedenen rewrite-Regeln.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.