Puncte:0

Configurați o redirecționare implicită în Nginx

drapel cn

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/;
  }
}
Puncte:0
drapel nr

The întoarce 301 regula, când se află în afara oricăror blocuri de locație, se va aplica întregului bloc de server și va avea prioritate față de blocurile de locație. În schimb, puteți defini un bloc de locație implicit/de rezervă, ca în încercarea dvs. #2, dar fără semnul egal (=). Semnul egal specifică o potrivire exactă și, în schimb, doriți o potrivire a prefixului, astfel încât să se potrivească cu toate solicitările.

De exemplu:

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 /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Ă

  Locație / {
     returnează 301 http://$host/home/;
  }
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.