Încercarea de a configura o adresă URL wildcard în ingress-nginx kubernetes Ingress pentru a redirecționa către adresa URL bazată pe cale, nu pare să treacă valoarea regex cu wildcard.
Url-ul ar fi ceva de genul „https://test.dev.example1.com/admin” și ar trebui să redirecționeze către https://example2.com/folder/test
Rezultatul pe care îl obțin este redirecționarea către https://example2.com/folder/
Se pare că nu primesc valoarea wildcard a „testului” ca variabilă
Mai jos este un fragment din Ingress
apiVersion: networking.k8s.io/v1
fel: Intrare
metadate:
nume: sample-service-ingress
adnotari:
kubernetes.io/ingress.class: nginx
cert-manager.io/issuer: „letsencrypt-production”
nginx.ingress.kubernetes.io/ssl-redirect: „adevărat”
nginx.ingress.kubernetes.io/server-snippet: |
nume_server ~^(?<nume>[\w-]+)\.dev\.example1\.com$;
locație /admin {
returnează 301 $scheme://example2.com/folder/$name;
}
...
Am testat și regex-ul în regex101.com și pare a fi corect. (minus ~)
Am încercat câteva lucruri, cum ar fi să iau $name var și să pun în mijlocul altor două valori hardcoded (ex. return 301 $scheme://example2.com/folder/begin.$name.end;) care returnează „https ://example2.com/folder/begin..end" care returnează o valoare goală sau NULL între valorile codificate hard begin..end.
Nu sunt sigur dacă $name var din regex trece corect. Nu sunt în stare să văd o valoare.
Am folosit acest lucru cu referire la următoarele ca referință https://stackoverflow.com/questions/39563071/how-to-get-subdomain-of-url-in-nginx