Ní féidir leis an gcoimeádán an API VPN-amháin a shroicheadh? Déan seachfhreastalaí ar an óstach
Tá an tollán ina chónaí ar an óstach, mar sin níl aon bhealach ag an gcoimeádán chuig an seoladh príobháideach. Foilsigh seachfhreastalaí droim ar ais caol agus glaoigh air mar host.docker.internal.
Téann do sheirbhís Compose thar an teorainn ama in aghaidh API a osclaíonn an brabhsálaí ar an meaisín céanna gan chasaoid ar bith. Is é an difríocht sin an leid: fágann an t-iarratas a oibríonn óstach a bhfuil tollán VPN aige, agus fágann an t-iarratas a chrochann coimeádán a bhfuil a stac líonra féin aige. Níl a fhios ag aon rud taobh istigh den choimeádán faoi bhealaí an tolláin, mar sin fanann an ceann scríbe príobháideach doshroichte cibé conas a litrítear an t-ainm. Is é an réiteach ná léim d’aon ghnó tríd an óstach, ní tábla ródaithe níos cliste.
Tosaigh le cén fáth a bhfuil an dá chosán difriúil, ansin socraigh cá gcaithfidh an tollán a bheith ina chónaí.
Cén fáth a n-oibríonn an t-óstach agus nach n-oibríonn an coimeádán
Tugann ardú an tolláin comhéadan don óstach, sraith bealaí agus, de ghnáth, iontráil réititheora a sholáthraíonn an VPN. Ní fhaigheann coimeádán aon rud de sin le hoidhreacht: tosaíonn sé le comhéadan amháin ar dhroichead an innill agus bealach réamhshocraithe a dhíríonn ar an droichead sin. Tá na bealaí a shuiteáiltear ar an óstach dofheicthe do gach rud a ritheann laistigh den spás ainmneacha sin.
Sin é an fáth a bhfuil na hairíonna neamhsheasmhach seachas briste amháin. Réitíonn an t-óstach an t-ainm príobháideach agus ceanglaíonn sé, toisc go bhfuil an t-ainm agus an bealach araon ann. Seolann an coimeádán a phaicéad chuig seoladh príobháideach nach féidir le haon rud ar chonair an droichid a shroicheadh, agus téann an t-iarratas thar an teorainn ama. Ní athraíonn cur an ainm le comhad hosts an choimeádáin aon rud, toisc go bhfuil an seoladh féin doshroichte ón áit a bhfuil an coimeádán.
Sroich an t-óstach ó laistigh den choimeádán
Déanann próiseas sa choimeádán a dhiailiú localhost an coimeádán féin a dhiailiú. Foilsíonn Docker Desktop host.docker.internal mar ainm a dhíríonn ar ais ar an meaisín a ritheann an t-inneall; fágann innill Linux é gan sainmhíniú mura n-iarrfaidh an tseirbhís é, agus sin a dhéanann an mapáil thíos. Leis sin díríonn an feidhmchlár ar ainm agus ar phort in ionad an tseolta phríobháidigh.
services:
app:
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
INTERNAL_API_HOST: "host.docker.internal:8666"Fanann an tollán ar thaobh an óstaigh den léim, agus is é an port sa chomhathróg sin an ceann a éistfidh an seachfhreastalaí leis. Teipeann ar choimeádán a chailleann an tollán anois ag aon léim amháin atá ar eolas in ionad bealach nárbh ann dó a thriail.
Roghnaigh cá gcónaíonn an tollán
Tá trí chruth indéanta do sheirbhís Compose a dteastaíonn API príobháideach uaithi, agus tá siad difriúil ó thaobh cé acu próiseas a shealbhaíonn an tollán. Is féidir le cliant VPN rith laistigh d’íomhá an choimeádáin, rud a éilíonn gléas tolláin a nochtadh agus an cumas riaracháin líonra a ghabhann leis a dheonú. Is féidir leis an bhfeidhmchlár spás ainmneacha líonra coimeádáin tolláin ar leith a roinnt, ionas go bhfeiceann an dá phróiseas stac amháin agus tábla ródaithe amháin. Nó is féidir leis an tollán fanacht ar an óstach, le seoltóir cúng ón óstach isteach sa choimeádán.
Tarraingíonn an chéad dá cheann comhaid phróifíle, iompar athcheangail agus polasaí réititheora isteach sa tionscadal, agus cuireann siad gach seirbhís sa chomhad ag brath ar shláinte an tolláin. Is iomarca cúplála é sin d’aon ghlao API amháin. Do stac forbartha a léann aon phointe deiridh inmheánach amháin, is é an seoltóir ar thaobh an óstaigh an t-athrú is lú a choinníonn na dintiúirí fós san áit a mbainistíonn foireann an ardáin iad.
Foilsigh aon chosán caol amháin ar an óstach
Tosaigh ón rud a fhaigheann an seoltóir le hoidhreacht: rith é faoin gcuntas a shealbhaíonn an tollán agus glacann a shocóid amach bealaí an óstaigh agus réititheoir an óstaigh. Clúdaíonn aon bhloc location nginx aon chosán amháin.
server {
listen 8666;
location /search/ {
proxy_pass http://10.20.30.40:8090/;
proxy_set_header Host internal-api.example;
proxy_read_timeout 60s;
}
}Caith leis an seoladh agus leis an bport mar ionadaithe agus cuir isteach an péire a n-éisteann an API leis i ndáiríre. Tuilleann gach upstream breise a bhloc location féin, agus ba cheart do gach bloc gan ach na cosáin a ghlaonn an tseirbhís seo a ligean isteach, ionas nach n-éireoidh an seachfhreastalaí ina dhoras ginearálta isteach sa líonra príobháideach. Ceangail an t-éisteoir le seoladh an droichid do chliaint a thagann trí host-gateway, le loopback amháin nuair a roinneann an cliant spás ainmneacha líonra an óstaigh, agus riamh le 0.0.0.0. Roghnaigh port atá fós saor freisin: fágann uimhir atá tógtha cheana féin an seachfhreastalaí gan éisteacht agus an coimeádán ag dul thar an teorainn ama i gcónaí, rud nach féidir a idirdhealú ón locht líonra ar thosaigh tú leis.
Poirt, ainmneacha agus an cinneadh TLS
Scoiltear réiteach ainmneacha ar an mbealach céanna le ródú. Téann cuardaigh phoiblí an choimeádáin trí réititheoir an innill, mar sin ní réiteofar ainm príobháideach a réitítear ar an óstach laistigh den choimeádán. Is é an seachfhreastalaí an chomhpháirt a réitíonn an t-ainm príobháideach, toisc go bhfaigheann sé réititheoir an óstaigh le hoidhreacht.
Is é TLS an cinneadh a chuirtear siar agus a mhíníonn an chéad chliseadh eile. Má sheolann an seachfhreastalaí bearta gan teagmháil, feiceann an coimeádán deimhniú an API féin agus teastaíonn an CA inmheánach óna stór iontaoibhe. Má chríochnaíonn an seachfhreastalaí TLS, aistrítear an iontaoibh sin chuig an óstach agus tosaíonn an feidhmchlár ag tógáil naisc ón gceanntásc host a fhaigheann sé. Roghnaigh socrú amháin agus cuir i bhfeidhm é ar gach acmhainn, mar go ndíríonn atreo a eisítear ag an socrú eile chuig óstainm nach féidir leis an gcoimeádán a réiteach.
Fíoraigh ó laistigh den tseirbhís
Seol an t-iarratas ón gcoimeádán, ní ón óstach: curl simplí in aghaidh chosán an tseachfhreastalaí, ansin seiceáil sláinte an fheidhmchláir féin. Nuair a fhreagraíonn an seachfhreastalaí ach go dteipeann ar an bhfeidhmchlár fós, déan comparáid idir trí rud: an bonn-URL a thógann sé, aon athróg seachfhreastalaí ina thimpeallacht, agus an CA a bhfuil muinín aige as. Tá siad uile i dtimpeallacht agus i logaí an choimeádáin, agus fágann deisiú aon cheann acu an VPN go socair.
Scríobh an socrú roghnaithe i README an tionscadail agus é úr. Seachas sin caithfidh an chéad duine eile a bhuailfidh leis an teorainn ama seo an tráthnóna céanna ag athaimsiú go gcónaíonn an tollán ar an óstach.