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.

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