Puncte:1

Vă rugăm să ajutați, încercând să setați proxy nginx invers dinamic, dar nu reușește

drapel cn

Vă rugăm să ajutați, încerc să configurez un proxy invers dinamic, astfel încât să nu am nevoie să fac modificări directe în nginx. Ce vreau să obțin este să creez o locație implicită care să spună:

locație ~ ^/staging/v1/(.*) {
      rezolutor 4.2.2.2
      proxy_pass https://$1$is_args$args;
}

deci presupunând că adresa URL a serverului proxy invers Nginx este example.com, iar eu vizitez example.com/staging/v1/test.com, serverul proxy invers va trimite solicitarea mea către test.com cu toate căile și argumentele.

Cu toate acestea, acest lucru pare să funcționeze cu o mulțime de erori. În primul rând, se încarcă o pagină goală. dar dacă adaug domeniul pe rădăcina locației nginx, cum ar fi:

  Locație / {

               proxy_pass test.com;
       }

aceasta va face solicitări precum example.com/staging/v1/test.com/app/login.png pentru a începe să funcționeze.

Te rog am nevoie de ajutor

Ivan Shatsky avatar
drapel gr
Trebuie să trimiteți antet HTTP valid [`Host`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Host) împreună cu solicitarea dvs. Va trebui să împărțiți restul URI-ului în două părți și să o utilizați pe prima pentru a-l seta folosind directiva `proxy_set_header`. Verificați [acest](https://serverfault.com/a/1100774/498657) răspuns pentru a afla mai multe.
henry chidiebere avatar
drapel cn
Mulțumesc @IvanShatsky Cu toate acestea, nu am reușit să-mi dau seama cum să împart URI-ul în două părți și cum să setez antetul proxy cu acesta. Puteți ajuta cu o modalitate explicită de a face acest lucru?
Puncte:1
drapel gr

Trebuie să trimiteți valid Gazdă Antet HTTP cu solicitarea dvs. Va trebui să împărțiți restul URI-ului în două părți și să o utilizați pe prima pentru a-l seta proxy_set_header directivă. Verifica acest răspuns pentru a afla mai multe.

Deoarece partea cu numele gazdei nu poate include în mod evident slash, puteți utiliza în schimb următorul model regex:

locație ~ ^/staging/v1/([^/]+)(?:/(.*))? {
    resolver 4.2.2.2;
    proxy_set_header Gazdă $1;
    proxy_pass https://$1/$2$is_args$args;
}
henry chidiebere avatar
drapel cn
Mulțumesc mult, Ivan, totuși, a produs un rezultat similar. Linkurile rupte de pe pagină sunt rezultatul unei adrese URL greșite. de exemplu, când inspectez pagina, una dintre imaginile rupte avea un URL ca example.com/images/pic.png. Totuși, dacă modific adresa URL a imaginii cu example.com/staging/ 1/test.com/images/pic.png, imaginea va fi încărcată cu succes. Am încercat să folosesc sub_filter pentru a modifica adresa URL a obiectului, dar nu a avut succes. Încă o dată, mulțumesc pentru ajutor, apreciez foarte mult.
Ivan Shatsky avatar
drapel gr
Nu sunt sigur că este posibil să creez un set de reguli universale „sub_filter” care să fie aplicabil pentru fiecare site. Când vine vorba de un JS complex, devine deloc imposibil. Puteți verifica și alte răspunsuri SF/SO: [1](https://serverfault.com/a/932636/498657), [2](https://stackoverflow.com/a/70012067/7121513). Ar trebui să utilizați `/staging/v1/$1` ca prefix în regulile de înlocuire.

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.