proxy-chain: د هر listener لپاره جلا حسابونه او upstreamونه
د prepareRequestFunction له لارې د listener ځانګړي Basic حسابونه او upstream لارې لرونکي proxy-chain Server نمونې جوړې کړئ.
proxy-chain کولی شي د هر اورېدلو پورټ لپاره یوه Server نمونه چلوي. د هغه listener تګلاره د هغې د تصدیق callback کې ثبت کړئ:
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()));
اپلیکیشن د خپلې عادي ترتیب له لارې د حسابونو ارزښتونه او upstream URLونه برابروي. هر callback خپله قاعده ساتي، نو د 8001 پورټ کې حساب منل د 8002 پورټ کې هغه حساب نه مني.
requestAuthentication true د Basic پروکسي ننګونه بیرته راګرځوي. کله چې تصدیق ته اړتیا وي، د هغې غوښتنې لپاره upstreamProxyUrl له پامه غورځول کیږي. بریالی داخلي حساب او upstream حساب جلا هویتونه دي.
د هر upstream لپاره د ملاتړ شوی URL وکاروئ، په شمول سم سم کوډ شوي اعتبارنامې کله چې اړتیا وي. د بې تصدیق عامه HTTP upstream لپاره د HTTP پروکسي لیست څخه یو نوماند وټاکئ او د هغې URL پرته له اعتبارنامو جوړه کړئ. پریښودل شوی upstream د بل اتوماتیک پروکسي پرځای مستقیم لیږد غوره کوي.
بېلګه د ځایي کلینټونو لپاره loopback تړي. کله چې بله ماشین باید وصل شي، د اړوند لاسرسي تګلارې سره په قصدي توګه ټاکل شوې انټرفیس وتړئ.
سرورونه د خپلو کلینټونو کاري بار لپاره ژوندي وساتئ. مالک یې باید د بندولو پر مهال هر سرور د هغې د ملاتړ شوې بندولو طریقې سره وتړي؛ بېلګه د هغه اپلیکیشن بشپړ ژوند دوره نه ټاکي.