Tentando configurar um URL curinga no ingress-nginx kubernetes Ingress para redirecionar para um URL baseado em caminho, ele não parece passar o valor regex curinga.
O URL seria algo como "https://test.dev.example1.com/admin" e deveria redirecionar parahttps://example2.com/folder/test
O resultado que estou obtendo é redirecionado parahttps://example2.com/folder/
Parece que não estou recebendo o valor curinga de "teste" como uma variável
Abaixo está um trecho do 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;
}
...
Também testei o regex em regex101.com e parece estar correto. (menos o ~)
Eu tentei algumas coisas, como pegar $name var e colocar no meio de dois outros valores codificados (por exemplo, return 301 $scheme://example2.com/folder/begin.$name.end;) que retorna "https ://example2.com/folder/begin..end" que retorna um valor vazio ou NULL entre os valores iniciais..end codificados.
Não tenho certeza se a var $name no regex está passando corretamente. Não consigo ver um valor.
Eu usei isso em referência ao seguinte como referênciahttps://stackoverflow.com/questions/39563071/how-to-get-subdomain-of-url-in-nginx