Cén fáth a bhfágann Port-Share gach cuairteoir ar an suíomh ag breathnú cosúil le localhost
Feiceann an backend an chéim seolta, ní an brabhsálaí. Seiceáil cá gcailltear an seoladh foinse, ansin socraigh cé acu comhpháirt atá ceadaithe chun é a ráthú.
Taispeánann gach líne sa log rochtana an seoladh loopback céanna, cé go lódálann an leathanach féin agus go ndeimhnítear an teastas i gceart. Níl aon rud briste sa chiall go bhfuil sé dorochtana, agus is ar an gcúis sin a mhaireann sé seo ar feadh míonna. An rud a bhris ná an lua: taifeadann an backend gréasáin seoladh na céime a sheol an nasc ar aghaidh, agus fuair gach cinneadh ina dhiaidh sin a chreid an log an freagra mícheart céanna le hoidhreacht.
Téann na seiceálacha thíos ón gcábla isteach. Stop ag an gcéad cheann a mhíníonn an luach a fheiceann tú, mar gach céim ina dhiaidh sin glactar leis go bhfuil na cinn roimhe seo fíor cheana féin. Ní éilíonn aon cheann acu buille faoi thuairim a thabhairt faoi chumraíocht an fhorchlóis.
Lean an dá nasc, ní líne an loga
Déanann Port-Share ilphléacsáil ar dhá phrótacal ar aon éisteoir TCP amháin. Scrúdaíonn OpenVPN chéad bhearta nasc isteach, coinníonn sé é nuair a bhíonn cuma a phrótacail féin air, agus tugann sé aon rud eile do dhara ceann scríbe. Is gnách gur freastalaí gréasáin ar an óstach céanna an ceann scríbe sin, mar sin tá an próiseas OpenVPN mar phiar ag an soicéad glactha ag freastalaí an ghréasáin.
ss -ltnp 'sport = :443'
ss -tnp 'dport = :8080'
Taispeánann an chéad ordú cé atá an t-éisteoir poiblí aige. Taispeánann an dara ceann na naisc a thagann go calafort an backend, agus is é seoladh a bpiar an ceann a phriontálfaidh an log rochtana. Má tá an piar sin ina loopback, tá an log cruinn agus cailleadh an t-eolas sraith níos luaithe. Ní thabharfaidh athainmniú réimse an loga ná cumasú modúl IP cliant seoladh ar ais nár iompair an nasc riamh.
Seo an tseiceáil a shocraíonn gach rud eile. Más é piar an backend seoladh an bhrabhsálaí, ní hé roinnt calafoirt d'fhadhb agus is é formáid an loga.
Ní hionann seoladh iompair agus instealladh ceannteidil
Bogann an seoltóir bearta. Ní dhéanann sé parsáil ar HTTP, mar sin ní féidir leis ceanntásc a chur isteach in iarratas nach léann sé riamh mar iarratas, agus ní féidir leis rud ar bith a chur le sruth TLS a théann sé thart gan teagmháil. Fanfaidh modúl a bhfuil ceanntásc seachfhreastalaí ag súil leis ag fanacht le ceann nach bhfuil aon chomhpháirt á tháirgeadh.
Is féidir le dhá mheicníocht an seoladh bunaidh a iompar, agus éilíonn an dá cheann comhaontú ag an dá cheann. Cuireann prótacal PROXY ceanntásc beag roimh an nasc, agus caithfidh an backend a bheith cumraithe chun é a bheith ag súil leis; déanfaidh backend nach bhfuil ag súil leis na bearta sin a láimhseáil mar thús an iarratais agus teipfidh sé ar bhealach mearbhallach. Oibríonn ceannteidil sheachfhreastalaí iontaofa ar nós X-Forwarded-For nuair a shocraíonn seachfhreastalaí a thuigeann HTTP iad agus nuair a insítear don backend cé na piaranna atá ceadaithe chun iad a dhearbhú.
Níl ceachtar acu uathoibríoch, agus níl ceachtar acu sábháilte de réir réamhshocraithe. Ligeann backend a chreideann aon cheanntásc seolta isteach do chliant a sheoladh féin a roghnú, rud a iompaíonn míchruinneas sa log ina sheachbhóthar ar rialú rochtana. Rith an taispeántas uair amháin ar óstach tástála sula gcuireann tú muinín in aon cheanntásc ar chonair táirgeachta.
curl -sS -H 'X-Forwarded-For: 127.0.0.1' https://site.example.com/health
grep -F '127.0.0.1' /var/log/nginx/access.log | tail -n 3
An chomhadlann roghnach um mhapáil foinse
Tá argóint chomhadlainne roghnach ag roinnt calafoirt a thaifeadann mapáil idir an seoladh foinse bunaidh agus an nasc seolta, ar ardáin ina bhfuil an ghné curtha i bhfeidhm. Táthar ag súil go gcuirfidh an taobh gréasáin comhairle leis an mapáil sin; ní ceanntásc í, agus ní instealltar isteach san iarratas í.
Is fiú an dearadh sin a bheith ar eolas agat mar míníonn sé cén fáth a dtuairiscíonn roinnt imscarthaí seoltaí fíora agus nach ndéanann daoine eile amhlaidh, le cumraíocht fhorchlóis atá cosúil mar an gcéanna. Tá an difríocht ar an taobh glactha, agus is gnách go mbíonn sí i modúl nó i bpaiste nach gcuireann formhór na bhfreastalaithe gréasáin pacáistithe i bhfeidhm de réir réamhshocraithe. Léigh doiciméadú do fhreastalaí gréasáin maidir leis an gcrúca beacht a thairgeann sé, agus deimhnigh go bhfuil an modúl lódáilte seachas glacadh leis.
Má leanann tú an chonair seo, caith leo mar chomhtháthú dhá leath: an mhapáil a scríobhann an seoltóir agus an chuardach a dhéanann an backend. Fíoraigh an dá cheann, agus deimhnigh go maireann an chomhadlann atosú agus nach bhfásann sí gan teorainn ar éisteoir gnóthach.
Socraigh cé acu comhpháirt a ráthaíonn an seoladh
Sula n-athraíonn tú an chumraíocht, ainmnigh an chomhpháirt atá ceadaithe chun seoladh cliaint a dhearbhú agus na comhpháirteanna atá ceadaithe chun é a chreidiúint. Cuireann aon fhreagra amháin scríofa cosc ar an sraonadh is gnách, áit a mbíonn muinín ag trí shraith éagsúla ina bhfoinse éagsúil féin.
Clúdaíonn trí dhearadh formhór na riachtanas. Coinnigh an t-éisteoir poiblí agus an t-éisteoir gréasáin ar leithligh, ionas go bhfeicfidh freastalaí an ghréasáin fíorphiaranna agus nach mbeidh aon fhadhb lua ann. Cuir seachfhreastalaí droim ar ais a thuigeann HTTP chun tosaigh, críochnaigh nó déan parsáil ar an iarratas ansin, agus lig dó ceanntásc seolta a shocrú do backend nach gcuireann muinín ach sa seachfhreastalaí sin. Nó coinnigh roinnt calafoirt agus glac leis go dtaispeánann na logaí an chéim, le rialacha rochtana scríofa in aghaidh chéannacht an fheidhmchláir seachas seoladh.
An rud nach n-oibríonn is seoladh loopback seolta a láimhseáil mar chruthúnas gur thosaigh an t-iarratas ar an meaisín seo. Tá an tátal sin díreach bunoscionn: tá an seoladh i láthair go beacht toisc gur dhearna comhpháirt logánta an nasc. Ligeann riail a scríobhtar amhlaidh isteach d'aon duine ar féidir leis an éisteoir a shroicheadh.
Tástáil an riail, ní an leathanach
Cruthaíonn leathanach a lódálann go n-oibríonn an chonair seolta agus ní deir sé aon rud faoin lua. Tástáil tomhaltóir an tseoltaidh: an riail rochtana, an teorainn ráta, an iontráil iniúchóireachta, an chuardach geografach.
curl -sS -o /dev/null -w '%{http_code}\n' https://site.example.com/
tail -n 5 /var/log/nginx/access.log
grep -c '' /var/log/nginx/access.log
Cuir iarratas seachtrach údaraithe i gcomparáid le taifid an fhorchlóis agus an backend araon, agus deimhnigh go ndiúltaíonn riail ar cheart di diúltú fós agus go nglacann ceann ar cheart di glacadh fós. Má tá líne an loga ceart ach má tá an riail fós ag iompar mar a bheadh gach duine logánta, léann an riail réimse difriúil ón gceann a dheisigh tú.
Críochnaigh trí an slabhra lua a scríobh sna nótaí imscartha: cén t-éisteoir, cén seoltóir, cén ceanntásc nó mapáil, agus cén backend atá cumraithe chun muinín a chur ann. Beidh na ceithre rud ag teastáil ón gcéad duine eile a léifidh líne loga, agus is é easpa an nóta sin an chaoi a n-athosclaítear an ticéad céanna bliain ina dhiaidh sin. Coinnigh é in aice na cumraíochta seachas i snáithe comhrá.