I-proxy_redirect ayixhumanisi i-NGINX ne-host yakho ye-VPN
I-proxy_redirect ibhala kabusha amakhanda empendulweni eseyifikile; ayikhethi i-upstream nhlobo. Hlola i-proxy_pass, umzila oya ku-backend, bese kuba amakhanda.
Igama liqukethe igama elithi redirect, ngakho-ke liyanamatheliswa ku-block ye-location lapho i-backend engemuva kwe-VPN ingafinyeleleki. Akukho okushintshayo, futhi isiphetho esisobala ukuthi lo mkhombandlela uphukile noma udinga esinye isakhiwo somusho. Okwenzeka ngempela kulula futhi akunconywa kangako: i-proxy_redirect isebenza kuphendulo eselubuyile kakade, futhi kulokhu kusetshenziswa ayikho isicelo esafika lapho.
Imiyalelo emibili, izikhathi ezimbili esicelweni esisodwa
Isicelo se-HTTP esidlula ku-proxy ephambene sidlula ezinqumweni ezimbalwa ngokulandelana, futhi imiyalelo emibili iseziphethweni eziphambene zalolo chungechunge. Eyodwa ikhetha ukuthi isicelo siya kuphi. Enye ihlela amakhanda athile aphendulweni elibuyayo.
| Directive | When it acts | What it can change |
|---|---|---|
proxy_pass | Before any bytes leave the proxy | Which upstream receives the request |
proxy_redirect | After the upstream responds | Matching Location and Refresh text |
Lokho kulandelana kuyimpendulo yonke. Uma umugqa wesibili ungasebenzi nhlobo ngenxa yokuthi owokuqala wehlulekile, umyalelo wesibili awumiswanga kabi, awufinyeleleki nje. Noma ngabe umugqa wesibili ubhalwa kabusha kangakanani, iphendulo okwakufanele liyihlele ngeke ivele. Hlola kusukela kumugqa wokuqala ukuya ngaphandle, futhi ukuziphatha okudidayo kuphela ngomzila ongekho noma ukuxhumana okunqatshiwe.
Ukukhetha i-upstream kungumsebenzi we-proxy_pass
Ake sithi i-NGINX igijima ku-host yokungena yomphakathi futhi ingafinyelela uhlelo lokusebenza ku-10.40.0.20:8080 nge-VPN yayo. Ingxenye ekhetha lolo hlelo ibukeka kanje, ngaphakathi kwe-block ye-server ekhona:
location / {
proxy_pass http://10.40.0.20:8080;
}
Sebenzisa isikimu, ikheli kanye nekhombandlela yangempela, futhi kubheke njengengxenye hhayi ukusetshenziswa. I-host yokungena kumele futhi ibambe umzila we-VPN, indlela yokudlulisa evunyelwe kanye nokuhamba okubuyayo okusebenzayo okuya kuleyo sevisi, ngoba i-proxy efinyelela ikheli ephepheni isadinga imvume ye-kernel.
Incwadi yesiqondiso ye-module ye-proxy igcina ukukhethwa kwe-upstream kuhlukile ekubhalweni kabusha kwamakhanda aphendulweni, futhi iphawula ukuthi inani le-proxy_pass eliqukethe i-URI lishintsha indlela isiqalo se-location esihambisanayo esishintshwa ngayo. Ukwengeza noma ukususa izingxenye zomzila ngaphandle kokuhlola i-URL uhlelo oluyilindele kuyindlela ethembekile yokukhiqiza i-404 ebukeka njengokwehluleka kokuhamba komzila.
I-proxy_redirect ilungisa izimpendulo ezidalula ikheli eliyimfihlo
Lapho ukuhamba kuqala ukugeleza, i-backend ingaphendula ngekhanda le-Location elisho ikheli layo eliyimfihlo. Isiphequluli esilandela lelo khanda siyashiya indawo yokungena yomphakathi futhi sizame ukufinyelela into engakwazi ukuyixazulula. Ukubhalwa kabusha kwephendulo okumiswe ngamabomu kuhlanganisa i-URL eyimfihlo naleyo yomphakathi:
proxy_redirect http://10.40.0.20:8080/ https://app.example.com/;
Shintsha izinhlangothi zombili ngamanani angempela. Qonda nobubanzi obuncane: umbhalo wamakhanda e-Location ne-Refresh ahambisanayo uyabhalwa kabusha, kodwa ama-URL afakwe ku-HTML, JavaScript noma amafayela alandiwe awabhalwa kabusha.
Uma uhlelo lokusebenza lwakha izixhumanisi eziphelele kuyo yonke indawo, isisombululo esihlala njalo ukumiswa kwayo kwe-URL yangaphandle, hhayi uhlu olukhulayo lwemithetho yokubhala kabusha ku-proxy. Ukwengeza imithetho kuze kube yilapho umphumela ubonakala ulungile kukhiqiza ukumiswa okwehluleka ekhasini lokuqala okungekho owayeyihlola. Ukumiswa okukodwa okulungile kohlelo lokusebenza kuthatha indawo yayo yonke iqoqo.
Okungeke kukwazi ukulungiswa ukubhalwa kabusha kwekhanda
Izinkinga eziningana eziseduze zibukeka njengezinkinga zokuqondisa kabusha kodwa akunjalo. Ikhanda le-Host elithunyelwa ku-upstream kungase kudingeke lihambisane ne-host ebonakalayo ye-backend. I-upstream ye-TLS ingase idinge igama leseva elithile kanye nokuqinisekiswa kwesitifiketi, futhi ukubhalwa kabusha kwekhanda lempendulo akusizi kukho kokubili.
Ububanzi bama-cookie nezimfanelo zesizinda kungokohlelo lokusebenza nokumiswa kwalo. I-proxy ingalahla noma ibhale kabusha amakhanda usuku lonke futhi ikhiqize isikhathi esihlangene esihlulekayo esicelweni sesibili, ngoba i-cookie yakhishwa nge-host isiphequluli esingakaze siyivakashele. Lokho kwehluleka kubukeka kwenzeka ngezikhathi ezithile, yingakho kuhlala isikhathi eside emgqeni wamathikithi. Ukufunda isizinda se-cookie ngokuvamile kuqeda uphenyo ngomzuzu owodwa.
Gcina nokuqinisekiswa kanye nokukhethwa kwe-backend kunqunyelwe kuhlelo lokusebenza okuhlosiwe. I-proxy ephambene yomphakathi kufanele iveze uhlelo olulodwa ngokusebenzisa i-VPN yeseva esikhundleni sokuba yisango elijwayelekile eliya kuwo wonke amakheli ayimfihlo i-host engakwazi ukuwafinyelela. I-location eyodwa ejwayelekile edlulisa konke okucelwa umshayeli ihlanganisa isevisi eyodwa eveziwe nengqophamlando yomakhelwane wakho oyimfihlo. Bhala i-upstream ngokucacile futhi uyigcine lapho.
Hlola ngokulandelana okuhamba ngakho isicelo
Qinisekisa izinto ezintathu ngokulandelana: i-NGINX ikhethe i-location ehlosiwe, yaqeda isicelo esiya ku-backend, futhi isiphequluli salandela noma yikuphi ukuqondisa kabusha kwakamuva futhi salayisha izinsiza ezingaphansi. Isinyathelo ngasinye sinemigqa yaso yokubhala, futhi ukuyifunda ngokulandelana kuguqula i-502 engacacile ibe ukutholakala okuqondile.
Umehluko owudingayo uphakathi kokuxhumana kwe-upstream okwehlulekile kanye nesiphequluli esithunyelwe egameni eliyimfihlo elingafinyeleleki. Okokuqala kubonakala kumbhalo wamaphutha e-proxy; okwesibili kubonakala njengesicelo esingafiki nhlobo, isiphequluli sikhala nge-host esingakwazi ukuyixazulula. Izinkinga ezimbili ezehlukene, amafayela amabili ahlukene, futhi kukho okukodwa kuphela okuhilela i-proxy_redirect.