proxy-chain: àwọn àkọsílẹ̀ àti upstream ọ̀tọ̀ọ̀tọ̀ fún olùgbọ́ kọ̀ọ̀kan
Dá àwọn ẹ̀dà Server ti proxy-chain pẹ̀lú àwọn àkọsílẹ̀ Basic àti àwọn ipa-ọ̀nà upstream tí ó yàtọ̀ fún olùgbọ́ kọ̀ọ̀kan nípasẹ̀ prepareRequestFunction.
proxy-chain lè ṣiṣẹ́ ẹ̀dà Server kan fún kọ̀ọ̀kan ibudo ìgbọ́ràn. Fi ìlànà olùgbọ́ yẹn pamọ́ nínú callback ìjẹ́rìí rẹ̀:
import { Server } from 'proxy-chain';
const listeners = [
{ port: 8001, user: userA, password: passwordA, upstream: upstreamA },
{ port: 8002, user: userB, password: passwordB, upstream: upstreamB },
];
const servers = listeners.map(rule => new Server({
host: '127.0.0.1',
port: rule.port,
prepareRequestFunction: ({ username, password }) => ({
requestAuthentication:
username !== rule.user || password !== rule.password,
upstreamProxyUrl: rule.upstream,
}),
}));
await Promise.all(servers.map(server => server.listen()));
Ohun èlò náà ń pèsè àwọn iye àkọsílẹ̀ àti àwọn URL upstream nípasẹ̀ ìṣètò rẹ̀ déédéé. Callback kọ̀ọ̀kan ń pa òfin tirẹ̀ mọ́, nítorí náà gbígba àkọsílẹ̀ náà ní ibudo 8001 kò gba àkọsílẹ̀ yẹn ní ibudo 8002.
requestAuthentication true ń dá ìpèníjà proxy Basic padà. Nígbà tí ìjẹ́rìí bá yẹ, a gbà upstreamProxyUrl sílẹ̀ fún ìbéèrè yẹn. Àkọsílẹ̀ tí ó wọlé tí ó ṣàṣeyọrí àti àkọsílẹ̀ upstream jẹ́ ìdánimọ̀ ọ̀tọ̀ọ̀tọ̀.
Lo URL tí a ṣe àtìlẹ́yìn fún kọ̀ọ̀kan upstream, pẹ̀lú àwọn ẹ̀rí tí a kóòdù rẹ̀ dáadáa nígbà tí ó bá yẹ. Fún upstream HTTP gbogbogbò tí kò ní ìjẹ́rìí, yan olùdíje kan láti inú àkọ́kọ́ àwọn proxy HTTP kí o sì kọ́ URL rẹ̀ láìsí àwọn ẹ̀rí. Upstream tí a fi sílẹ̀ yan ìfiránṣẹ́ tààrà dípò proxy aládàáṣiṣẹ́ mìíràn.
Àpẹẹrẹ náà so loopback fún àwọn oníbàárà àdúgbò. So ìfaradà tí a pinnu ní àmọ̀ọ́nú nígbà tí ẹrọ mìíràn gbọdọ̀ sopọ̀, pẹ̀lú ìlànà ìwọlé tí ó bá a mu.
Jẹ́ kí àwọn sáfà wà ní ìwàláàyè fún ẹrù iṣẹ́ àwọn oníbàárà wọn. Ó yẹ kí olùní wọn pa sáfà kọ̀ọ̀kan nípasẹ̀ ọ̀nà pípa tí a ṣe àtìlẹ́yìn nígbà tí wọ́n bá tan; àpẹẹrẹ náà kò ṣàlàyé gbogbo ìgbésẹ̀ ìwàláàyè ohun èlò yẹn.