Magacu wuxuu ka kooban yahay erayga redirect, sidaas darteed waa la dhejiyaa gudaha block location marka backend ka dambeeya VPN aan la gaari karin. Waxba ma isbeddelo, oo gabagabada cad ayaa ah in amarku jaban yahay ama uu u baahan yahay qaab kale. Waxa dhab ahaan dhacay ayaa ka fudud oo ka yar ammaan: proxy_redirect wuxuu ka shaqeeyaa jawaab hore u soo noqotay, oo hirgelintan ma jiro codsi waligiis gaaray halkaas.

Laba amar, laba daqiiqadood hal codsi

Codsi HTTP oo mara proxy rogan ayaa si isku xigta u mara go'aamo dhowr ah, labada amar-na waxay ku yaallaan labada daraf ee iska soo horjeeda ee taxanahaas. Mid ayaa doorta halka codsigu tagaayo. Tan kale waxay tafatirtaa qaar ka mid ah cinwaannada jawaabta soo noqota.

DirectiveWhen it actsWhat it can change
proxy_passBefore any bytes leave the proxyWhich upstream receives the request
proxy_redirectAfter the upstream respondsMatching Location and Refresh text

Taxanahaas ayaa ah jawaabta oo dhan. Haddii safka labaad waligiis aan la fulin sababtoo ah kii hore wuu guuldarraystay, amarka labaad si khaldan looma habayn, si fudud lama gaari karo. Inta badan safka labaad dib loo qoro, jawaabta ay ahayd inuu tafatiro ma abuurmayso. Laga bilaabo safka koowaad dibadda u baadh, oo dabeecadda jahawareerka ah waxay noqotaa waddo maqan ama xiriir la diidey.

Doorashada upstream waxay ka tirsan tahay proxy_pass

Ka soo qaad NGINX wuxuu ku socdaa host gelitaan dadweyne oo wuxuu ku gaari karaa codsi ku yaal 10.40.0.20:8080 VPN-kiisa. Qaybta doorata codsigaas waxay u eg tahay sidan, gudaha block server jira:

location / {
    proxy_pass http://10.40.0.20:8080;
}

Isticmaal qaabka, ciwaanka iyo dekedda dhabta ah, oo u qaado tan qayb halkii aad ka qaadan lahayd hirgelin. Host gelitaanku sidoo kale waa inuu hayaa waddada VPN, waddo gudbin oo la oggolaaday iyo taraafik soo noqota oo shaqeeya oo u socda adeeggaas, maxaa yeelay proxy gaari kara ciwaan warqad ku qoran weli wuxuu u baahan yahay oggolaanshaha kernel-ka.

Tixraaca module-ka proxy wuxuu doorashada upstream ka soocaa qorista dib-u-qorista cinwaannada jawaabta, wuxuuna xusaa in qiimaha proxy_pass ee leh URI uu beddelo sida prefix-ka location ee u dhigma loo beddelo. Ku darista ama ka saarista qaybaha waddada iyada oo aan la hubin URL-ka codsiga uu filayo waa hab lagu kalsoonaan karo oo lagu soo saaro 404 u eg guuldarada waddada.

proxy_redirect wuxuu hagaajiyaa jawaabaha daadinaaya ciwaan gaar ah

Marka taraafikku socdaa, backend waxa laga yaabaa inuu ku jawaabo cinwaan Location oo sheegaya ciwaankiisa gaarka ah. Browser raaca cinwaankaas wuxuu ka tago barta gelitaanka dadweynaha oo isku dayaa inuu gaaro wax uusan xallin karin. Dib-u-qoris jawaab si ula kac ah loo habeeyay ayaa URL-ka gaarka ah ku sawira kan dadweynaha:

proxy_redirect http://10.40.0.20:8080/ https://app.example.com/;

Beddel labada dhinac qiimooyin dhab ah. Sidoo kale fahan baaxadda cidhiidhiga ah: qoraalka cinwaannada Location iyo Refresh ee u dhigma waa la dib-u-qoraa, laakiin URL-yada lagu dhex daray HTML, JavaScript ama faylal la soo dejiyay lama qoro.

Haddii codsi ku dhiso xiriiryo buuxa meel kasta, xalka waarta waa habaynta URL-ka dibadda ee codsiga laftiisa, ma aha liis sii kordhaaya oo xeerar dib-u-qoris ah oo proxy-ga saaran. Ku darista xeerar ilaa natiijadu u ekaato mid sax ah waxay soo saartaa habayn ku guuldarraysta bogga ugu horreeya ee aan cidina tijaabin. Hal dejinta sax ah oo codsiga ah ayaa beddela ururinta oo dhan.

Waxa dib-u-qorista cinwaanku aanay hagaajin karin

Dhowr dhibaato oo isku dhow waxay u eg yihiin dhibaatooyin dib-u-celin laakiin ma aha. Cinwaanka Host ee loo diro upstream waxa laga yaabaa inuu u dhigmaa host-ka macmalka ah ee backend-ka. TLS upstream waxa laga yaabaa inuu u baahan yahay magac server gaar ah iyo xaqiijinta shahaadada, dib-u-qorista cinwaanka jawaabtana midkoodna ma caawiso.

Baaxadda cookie-yada iyo sifooyinka domain-ka waxay ka tirsan yihiin codsiga iyo habayntiisa. Proxy waxuu maalinta oo dhan tuuri karaa ama dib-u-qori karaa cinwaannada oo weli soo saari karaa fadhi ku guuldarraysta codsiga labaad, maxaa yeelay cookie-ga waxaa loo soo saaray host uusan browser waligiis booqan. Guuldaradaas waxay u eg tahay mid soo noqnoqda, taas ayaa sababta ay muddo dheer ugu sii jirto safka tikidhada. Akhrinta domain-ka cookie-ga ayaa badanaa baaritaanka ku dhammeeya hal daqiiqo.

Sidoo kale xaddid xaqiijinta iyo doorashada backend-ka codsiga loogu talagalay. Proxy rogan oo dadweyne waa inuu soo bandhigaa hal codsi iyada oo loo marayo VPN-ka server-ka halkii uu ka noqon lahaa irrid guud oo u socota ciwaan kasta oo gaar ah oo host-kaas gaari karo. Hal location guud oo gudbinaya wax kasta oo soo wacaha codsado ayaa u beddela hal adeeg oo la soo bandhigay khariidad shabakaddaada gaarka ah. Magac dhaqan si cad upstream-ka oo halkaas ku hay.

Ku tijaabi sida ay codsigu u socoto

Si isku xigta u xaqiiji saddex arrimood: NGINX wuxuu doortay location loogu talagalay, wuxuu dhammeeyay codsi backend-ka, browser-kuna wuxuu raacay dib-u-celin kasta oo dambe oo wuxuu raray kheyraadka hoose. Tallaabo kastaa waxay leedahay safkeeda log, akhrintooda si isku xigtana waxay 502 aan cad u beddelaa natiijo cad.

Farqiga aad u baahan tahay waa kan u dhexeeya xiriir upstream oo guuldarraystay iyo browser loo diray magac gaar ah oo aan la gaari karin. Kii hore waxa uu ka muuqdaa log-ga khaladaadka proxy-ga; kii dambe waxa uu u muuqdaa codsi waligiis iman, browser-kuna waxa uu ka cabanayaa host uusan xallin karin. Laba dhibaato oo kala duwan, laba fayl oo kala duwan, oo midkoodna kaliya ayaa proxy_redirect ku lug leh.

Maqaallo la xiriira