Am nevoie de o modalitate de a redirecționa clienții atunci când nu este definită nicio cale existentă. Când pun o configurație returnată 301, nginx pare să ignore orice configurație de locație. Redirecționează totul.
Numele de gazdă din redirecționare trebuie să fie dinamic (provine de la client). Aceste servere sunt de fapt containere și sunt implementate în medii Dev/Prod. Așadar, adresa URL a clientului se schimbă de la ceva de genul dev.example.com la example.com. Prefer să nu fac schimbarea configurației pe baza mediilor.
Folosesc v1.18 pe RHEL. Serverele proxy sunt aplicații Angular gestionate de dezvoltatorii respectivi.
Server {
asculta 80;
numele serverului _;
index index.html;
locație = /service/a {
proxy_pass http://svc-a.local/service/a/;
}
locație /serviciu/a/ {
proxy_pass http://svc-a.local/service/a/;
}
locație = /service/b {
proxy_pass http://svc-b.local/service/b/;
}
locație /serviciu/b/ {
proxy_pass http://svc-b.local/service/b/;
}
locație = /service/x {
proxy_pass http://svc-x.local/service/x/;
}
locație /serviciu/x/ {
proxy_pass http://svc-x.local/service/x/;
}
locație = /casa {
proxy_pass http://home.local/home/;
}
locație /acasă/ {
proxy_pass http://home.local/home/;
}
# kubernetes verifică acest lucru, dar nu obține 301
locație /nginx_status {
stub_status activat;
access_log off;
}
# DACĂ NU SE POZIȚIE DE SUS, MERGI LA /ACASĂ
# încercați #1
returnează 301 http://$host/home/;
# încercați #2
locație = / {
returnează 301 http://$host/home/;
}
# încercați #3
întoarcere 301 /acasă/;
# încercați #4
locație = / {
proxy_pass http://home.local/home/;
}
}