Al intentar configurar una URL comodín en ingress-nginx kubernetes Ingress para redirigir a la URL basada en la ruta, no parece pasar el valor de expresión regular comodín.
La URL sería algo así como "https://test.dev.example1.com/admin" y debería redirigir ahttps://ejemplo2.com/carpeta/prueba
El resultado que obtengo es redirigir ahttps://ejemplo2.com/carpeta/
Parece que no obtengo el valor comodín de "prueba" como variable
A continuación se muestra un fragmento del 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;
}
...
También probé la expresión regular en regex101.com y parece ser correcta. (menos el ~)
He probado algunas cosas como tomar la var $name y ponerla en medio de otros dos valores codificados (por ejemplo, return 301 $scheme://example2.com/folder/begin.$name.end;) que devuelve "https ://example2.com/folder/begin..end" que devuelve un valor vacío o NULL entre los valores codificados de inicio y fin.
No estoy seguro de si la var $name en la expresión regular se pasa correctamente. No puedo ver un valor.
He usado esto en referencia a lo siguiente como referencia.https://stackoverflow.com/questions/39563071/how-to-get-subdomain-of-url-in-nginx