Orukọ naa ni ọrọ redirect ninu, nitorina a fi a mo sinu block location nigba ti a ko le de backend ti o wa lẹhin VPN. Ko si ohun ti o yipada, ati ipari ti o han gbangba ni pe ilana naa ti bajẹ tabi o nilo sintasi miiran. Ohun ti o ṣẹlẹ nitootọ rọrun julọ ati ko ni iyin: proxy_redirect n ṣiṣẹ lori idahun ti o ti pada tẹlẹ, ati ninu imuṣiṣẹ yii ko si ibeere kan ti o de ibẹ rara.

Awọn ilana meji, awọn akoko meji ninu ibeere kan

Ibeere HTTP nipasẹ proxy odi nlọ nipasẹ awọn ipinnu pupọ ni tẹlentẹle, ati awọn ilana meji naa wa ni awọn opin ti o lodi si ti ilana yẹn. Ọkan n yan ibi ti ibeere naa yoo lọ. Ekeji n ṣatunkọ awọn akọle kan ninu idahun ti o pada wa.

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

Ilana yẹn ni idahun naa lapapọ. Ti ila keji ko ba ṣiṣẹ rara nitori ila akọkọ kuna, ilana keji ko jẹ iṣeto ti ko tọ, o kan ko le de ọdọ rẹ. Bii o ti wu ki a tun ila keji kọ, idahun ti o yẹ ki o ṣatunkọ kii yoo farahan. Ṣe ayẹwo lati ila akọkọ jade, ati ihuwasi idarudapọ naa yoo di ọna ti o nsọnu tabi asopọ ti a kọ.

Yiyan upstream jẹ iṣẹ proxy_pass

Sọ pe NGINX n ṣiṣẹ lori host iwọle gbangba ati pe o le de ohun elo kan ni 10.40.0.20:8080 nipasẹ VPN rẹ. Ẹya ti o yan ohun elo yẹn dabi eyi, ninu block server ti o wa tẹlẹ:

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

Lo ilana, adirẹsi ati ibudo gidi, ki o si tọju eyi bi ẹya kii ṣe imuṣiṣẹ. Host iwọle tun gbọdọ di ọna VPN, ọna gbigbe ti a gba laaye ati ijabọ ipadabọ ti n ṣiṣẹ si iṣẹ yẹn, nitori proxy ti o de adirẹsi lori iwe tun nilo ifọwọsi kernel.

Itọkasi module proxy tọju yiyan upstream lọtọ si atunkọ awọn akọle idahun, o si ṣe akiyesi pe iye proxy_pass ti o ni URI yoo yi bi a ṣe rọpo ipilẹ location ti o baamu. Fifun tabi yiyọ awọn ẹya ọna lai ṣayẹwo URL ti ohun elo n reti jẹ ọna ti o gbẹkẹle lati ṣe 404 ti o dabi ikuna ipa-ọna.

proxy_redirect n ṣatunṣe awọn idahun ti o n jo adirẹsi ikọkọ

Nigbati ijabọ ba bẹrẹ si ṣàn, backend le dahun pẹlu akọle Location ti o darukọ adirẹsi ikọkọ rẹ. Ẹrọ aṣawakiri ti o tẹle akọle yẹn yoo fi aaye iwọle gbangba silẹ ki o gbiyanju lati de nkan ti ko le yanju. Atunkọ idahun ti a ṣeto pẹlu ipinnu yoo ya URL ikọkọ pọ mọ ti gbangba:

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

Rọpo ẹgbẹ mejeeji pẹlu awọn iye gidi. Loye iwọn dín naa paapaa: a tun ọrọ awọn akọle Location ati Refresh ti o baamu kọ, ṣugbọn awọn URL ti a fi sinu HTML, JavaScript tabi awọn faili ti a gbasilẹ kii ṣe bẹ.

Ti ohun elo kan ba n kọ awọn ọna asopọ pipe nibikibi, ojutu pipẹ ni iṣeto URL ita ti ohun elo naa funrararẹ, kii ṣe atokọ awọn ofin atunkọ ti n dagba lori proxy. Fifun awọn ofin titi ti abajade yoo fi dabi ẹni pe o tọ yoo ṣẹda iṣeto ti yoo kuna ni oju-iwe akọkọ ti ẹnikan ko gbiyanju. Eto ọkan ti o tọ ti ohun elo yoo rọpo gbogbo akojọpọ naa.

Ohun ti atunkọ akọle ko le tunṣe

Ọpọlọpọ awọn iṣoro nitosi dabi awọn iṣoro atunkọ ṣugbọn kii ṣe bẹ. Akọle Host ti a fi ranṣẹ si upstream le nilo lati baamu host fekiti ti backend. TLS upstream le nilo orukọ server kan pato pẹlu ijẹrisi ijẹrisi, ati atunkọ akọle idahun ko ṣe iranlọwọ fun eyikeyi ninu wọn.

Iwọn cookie ati awọn abuda domain jẹ ti ohun elo ati iṣeto rẹ. Proxy le ju tabi tun awọn akọle kọ ni gbogbo ọjọ ati tun ṣẹda igba ti yoo kuna ni ibeere keji, nitori a ti fun cookie naa fun host ti ẹrọ aṣawakiri ko ti ṣabẹwo si rara. Ikuna yẹn dabi ẹni pe o maa n waye lẹẹkọọkan, eyi ni idi ti o fi pẹ to ninu laini tikẹti. Kika domain cookie naa maa n pari iwadii ni iṣẹju kan.

Pa ijẹrisi ati yiyan backend mọ si ohun elo ti a pinnu pẹlu. Proxy odi gbangba yẹ ki o fi ohun elo kan han nipasẹ VPN ti server dipo lati di ẹnu-ọna gbogbogbo si gbogbo adirẹsi ikọkọ ti host yẹn le de. location kan ti gbogbogbo ti o n gbe ohun gbogbo ti olupilẹ ba beere yoo yi iṣẹ kan ti o han pada si maapu ti nẹtiwọọki ikọkọ rẹ. Darukọ upstream ni gbangba ki o si tọju rẹ nibẹ.

Danwo ni ilana ti ibeere n rin

Jẹrisi ohun mẹta ni tẹlentẹle: NGINX yan location ti a pinnu, o pari ibeere si backend, ati ẹrọ aṣawakiri tẹle eyikeyi atunkọ ti o tẹle ki o si gbe awọn orisun kekere wọle. Igbese kọọkan ni awọn ila log tirẹ, ati kika wọn ni ilana yoo yi 502 ti ko ye pada si wiwa kan pato.

Iyato ti o nilo wa laarin asopọ upstream ti o kuna ati ẹrọ aṣawakiri ti a fi ranṣẹ si orukọ ikọkọ ti ko le de. Eyi akọkọ han ninu log aṣiṣe proxy; eyi keji han bi ibeere ti ko de rara, pẹlu ẹrọ aṣawakiri n kerora nipa host ti ko le yanju. Awọn iṣoro meji ti o yatọ, awọn faili meji ti o yatọ, ati ọkan ninu wọn nikan ni o ni ibatan si proxy_redirect.

Àwọn àpilẹ̀kọ tó jọra