Platzhalter-URL in Ingress-Nginx Kubernetes Ingress zur Umleitung auf eine pfadbasierte URL scheint keinen Regex-Wert zu übergeben

Platzhalter-URL in Ingress-Nginx Kubernetes Ingress zur Umleitung auf eine pfadbasierte URL scheint keinen Regex-Wert zu übergeben

Beim Versuch, eine Platzhalter-URL in Ingress-Nginx Kubernetes Ingress einzurichten, um auf eine pfadbasierte URL umzuleiten, scheint der Platzhalter-Regex-Wert nicht zu übergeben.

Die URL wäre dann etwa "https://test.dev.example1.com/admin" und sollte weiterleiten zuhttps://example2.com/ordner/test

Das Ergebnis, das ich erhalte, ist die Weiterleitung zuhttps://example2.com/ordner/

Es scheint, dass ich den Platzhalterwert von "test" nicht als Variable bekomme

Nachfolgend finden Sie einen Ausschnitt des Ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
   name: sample-service-ingress
   annotations:
     kubernetes.io/ingress.class: nginx
     cert-manager.io/issuer: "letsencrypt-production"
     nginx.ingress.kubernetes.io/ssl-redirect: "true"
     nginx.ingress.kubernetes.io/server-snippet: |
        server_name ~^(?<name>[\w-]+)\.dev\.example1\.com$;

        location /admin {
          return 301 $scheme://example2.com/folder/$name;

        }
...

Ich habe den regulären Ausdruck auch in regex101.com getestet und er scheint korrekt zu sein. (abzüglich des ~)

Ich habe ein paar Dinge ausprobiert, wie zum Beispiel die Variable $name zu nehmen und sie zwischen zwei andere fest codierte Werte einzufügen (z. B. return 301 $scheme://example2.com/folder/begin.$name.end;), was „https://example2.com/folder/begin..end“ zurückgibt, was wiederum einen leeren oder NULL-Wert zwischen den fest codierten begin..end-Werten zurückgibt.

Ich bin nicht sicher, ob die Variable $name im regulären Ausdruck korrekt übergeben wird. Ich kann keinen Wert sehen.

Ich habe dies im Folgenden als Referenz verwendethttps://stackoverflow.com/questions/39563071/wie-erhalte-man-die-Subdomain-einer-URL-in-nginx

verwandte Informationen