Puncte:0

NGINX Setează antetul proxy invers pe baza adresei URL

drapel cf

Am configurat un proxy invers pentru conținutul static de pe site. Totul funcționează, singura problemă este că există câteva pagini în care conținutul static nu se află în acea locație. Încerc să fac ceva în care procurez NUMAI acel conținut pentru unele dintre pagini sau, mai ușor, invers, proxy conținutul pentru toate paginile, cu excepția pentru câteva.

Proxy curent

locație /sites/default/files/ {    
    proxy_set_header Gazdă url.com;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $gazdă;
    proxy_pass https://url.com;
}

Dar am nevoie de o modalitate de a face următoarele (știu că această sintaxă este 100% greșită, doar ma inventez pentru a-mi da o idee ce încerc să fac)

locație /sites/default/files/ {
    if (request_url != '/cart' || request_url != 'checkout') {
        proxy_set_header Gazdă url.com;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $gazdă;
        proxy_pass https://url.com;
    }
}
Puncte:0
drapel cf

După ore de testare și căutare pe Google, am o soluție pentru soluție. Au existat altele asemănătoare, dar niciuna care să fie exact ceea ce încercam să fac. Iată ce am ajuns să fac pentru ca asta să funcționeze.

Mai întâi am creat o hartă variabilă care setează în mod condiționat valoarea pe baza valorii $http_referer care se află în NGINX

harta $http_referer $resources_location {
    implicit „url.com”;
    „~*/page2” „url2.com”;
    "~*/page3" "url2.com";
}

Aceasta ia variabila $http_referer și setează variabila $resources_location pe baza valorii $http_referer.

implicit este adresa URL principală, iar apoi am expresii regex pentru a determina că pagina are /page2, /page3 în ea.

Singura captură pe care presupun că este https://url.com/page2 ar declanșa-o, așa ar fi https://url.com/sub/page2. Nu trebuie să-mi fac griji pentru asta, dar ar putea, așa că aș testa și eu.

Apoi folosesc noua variabilă care este setată în proxy

locație /sites/default/files/ {        
    proxy_set_header Gazdă $resources_location;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Host $gazdă;
    proxy_pass https://${resources_location};
}  

Sunt un începător la NGINX, așa că dacă există ceva care poate fi făcut mai bine, anunțați-mă!!

drapel cn
Ați vrut să spuneți „url3” pentru „page3”?
drapel cf
@AlexisWilke da, doar o eroare în eliminarea datelor de identificare pe care le folosim de fapt.

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.