Tá an focal redirect san ainm, mar sin greamaítear isteach i mbloc location é nuair nach féidir teacht ar backend taobh thiar den VPN. Ní athraíonn aon rud, agus is é an chonclúid fhollasach go bhfuil an treoir briste nó go dteastaíonn comhréir eile uaithi. Is é an rud a tharla i ndáiríre ná rud níos simplí agus níos lú molta: oibríonn proxy_redirect ar fhreagra atá tagtha ar ais cheana féin, agus sa imscaradh seo níor shroich aon iarratas an fad sin.

Dhá threoir, dhá nóiméad in aon iarratas amháin

Téann iarratas HTTP trí sheachfhreastalaí droim ar ais trí roinnt cinntí in ord, agus tá an dá threoir ag freagairt a chéile ag foircinn na seichimh sin. Roghnaíonn ceann acu cá dtéann an t-iarratas. Athraíonn an ceann eile ceanntásca áirithe sa fhreagra a thagann ar ais.

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

Is é an t-ord sin an freagra iomlán. Mura gcuirtear an dara líne i gcrích riamh toisc gur theip ar an gcéad cheann, níl an dara treoir míchumraithe, níl sí ach doshroichte. Is cuma cé mhéad uair a athscríobhtar an dara líne, ní chruthófar an freagra a bhí le cur in eagar aici. Déan diagnóis ón gcéad líne amach, agus réitítear an t-iompar mearbhallach ina bhealach atá ar iarraidh nó ina nasc diúltaithe.

Baineann roghnú an upstream le proxy_pass

Má ghlactar leis go bhfuil NGINX ag rith ar óstach iontrála poiblí agus gur féidir leis teacht ar fheidhmchlár ag 10.40.0.20:8080 trína VPN. Breathnaíonn an mhír a roghnaíonn an feidhmchlár sin mar seo, taobh istigh de bhloc server atá ann cheana:

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

Úsáid an scéim, an seoladh agus an port fíor, agus caith leis seo mar mhír seachas mar imscaradh. Caithfidh an t-óstach iontrála freisin an bealach VPN, cosán seolta ceadaithe agus trácht fillte atá ag obair chuig an tseirbhís sin a choinneáil, mar is gá do sheachfhreastalaí a shroicheann seoladh ar pháipéar comhaontú an eithne fós.

Coinníonn tagairt mhodúil proxy roghnú an upstream ar leithligh ó athscríobh ceanntásc freagartha, agus tugann sé faoi deara go n-athraíonn luach proxy_pass a bhfuil URI ann an chaoi a ndéantar an réimír location mheaitseála a ionadú. Is bealach iontaofa é comhpháirteanna cosáin a chur leis nó a bhaint gan an URL a sheiceáil a bhfuil súil ag an bhfeidhmchlár leis chun 404 a tháirgeadh a bhfuil cuma teip ródaithe air.

Deisíonn proxy_redirect freagraí a sceitheann seoladh príobháideach

Nuair a shreabhann trácht, féadfaidh backend freagra a thabhairt le ceanntásc Location a ainmníonn a sheoladh príobháideach. Fágann brabhsálaí a leanann an ceanntásc sin an pointe iontrála poiblí agus déanann sé iarracht rud éigin nach féidir leis a réiteach a shroich. Déanann athscríobh freagartha atá cumraithe d’aon ghnó an URL príobháideach a mhapáil ar an gceann poiblí:

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

Cuir luachanna fíora in ionad an dá thaobh. Tuig an raon cúng freisin: athscríobhtar téacs na gceanntásc Location agus Refresh a mheaitseálann, ach ní dhéantar URLanna atá leabaithe i HTML, JavaScript nó comhaid íoslódáilte a athscríobh.

Má thógann feidhmchlár naisc iomlána i ngach áit, is é an réiteach buan a chumraíocht URL seachtrach féin, ní liosta atá ag fás de rialacha athscríbhinne ar an seachfhreastalaí. Má chuireann tú rialacha leis go dtí go bhfeictear an t-aschur ceart, cruthaítear cumraíocht a theipeann ar an gcéad leathanach nár thástáil duine ar bith. Tagann socruithe ceart amháin san fheidhmchlár in ionad an bhailiúcháin iomláin.

Cad nach féidir le hathscríobh ceanntásc a dheisiú

Breathnaíonn roinnt fadhbanna comharsanachta cosúil le fadhbanna athsheolta agus ní hea. B’fhéidir go gcaithfidh an ceanntásc Host a sheoltar chuig an upstream teacht leis an óstach fíorúil den backend. B’fhéidir go dteastaíonn ainm freastalaí ar leith chomh maith le fíorú teastais ó upstream TLS, agus ní dhéanann athscríobh ceanntásc freagartha aon rud do cheachtar acu.

Baineann raon na bhfianán agus tréithe fearainn leis an bhfeidhmchlár agus lena chumraíocht. Féadfaidh seachfhreastalaí ceanntásca a scaoileadh nó a athscríobh an lá ar fad agus seisiún a tháirgeadh fós a theipeann ar an dara hiarratas, mar gur eisíodh an fianán d’óstach nár thug an brabhsálaí cuairt riamh air. Breathnaíonn an teip sin go heatramhach, agus sin an fáth a maireann sé chomh fada i scuaine ticéad. De ghnáth cuireann léamh fhearann an fhianáin deireadh leis an imscrúdú i gceann nóiméid.

Coinnigh fíordheimhniú agus roghnú backend teoranta don fheidhmchlár atá beartaithe freisin. Ba cheart do sheachfhreastalaí droim ar ais poiblí feidhmchlár amháin a nochtadh trí VPN an fhreastalaí seachas éirí ina gheata ginearálta chuig gach seoladh príobháideach ar féidir leis an óstach sin a shroich. Iompaíonn aon location ginearálta amháin a sheolann gach rud a iarrann an glaochóir seirbhís nochta amháin ina léarscáil de do líonra príobháideach. Ainmnigh an upstream go sainráite agus coinnigh ansin é.

Tástáil san ord a thaistealaíonn an t-iarratas

Deimhnigh trí rud in ord: roghnaigh NGINX an location atá beartaithe, chríochnaigh sé iarratas chuig an backend, agus lean an brabhsálaí aon athsheoladh níos déanaí agus lódáil sé na fo-acmhainní. Tá a línte logála féin ag gach céim, agus iompaíonn léamh in ord iad ina bhfionnachtain shonrach ó 502 doiléir.

Is é an t-idirdhealú a theastaíonn uait idir nasc upstream teipthe agus brabhsálaí a seoladh chuig ainm príobháideach doshroichte. Taispeántar an chéad cheann i logáil earráide an tseachfhreastalaí; taispeántar an dara ceann mar iarratas nach dtagann riamh, agus an brabhsálaí ag gearán faoi óstach nach féidir leis a réiteach. Dhá fhadhb dhifriúla, dhá chomhad dhifriúla, agus ní bhaineann ach ceann acu le proxy_redirect ar chor ar bith.

Ailt ghaolmhara