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 proxy سىناقىنى قايتۇرىدۇ. دەلىللەش تەلەپ قىلىنغاندا، شۇ تەلەپ ئۈچۈن upstreamProxyUrl دىن ئىغىنا قىلىنىدۇ. مۇۋەپپەقىيەتلىك كىرگەن ھېسابات بىلەن upstream ھېساباتى ئايرىم كىملىكلەر.

ھەر بىر upstream ئۈچۈن قوللىنىدىغان URL ئىشلىتىڭ، زۆرۈر بولغاندا توغرا كودلانغان ھېسابات ئۇچۇرلىرى نى ئۆز ئىچىگە ئالىدۇ. دەلىللەش بولمىغان ئاممىۋى HTTP upstream ئۈچۈن HTTP proxy تىزىملىكىدىن نامزات تاللاڭ ۋە URL نى ھېسابات ئۇچۇرلىرىسىز قۇرۇڭ. قالدۇرۇلغان upstream باشقا ئاپتوماتىك proxy ئورنىغا بىۋاسىتە يوللاشنى تاللايدۇ.

مىسال يەرلىك خېرىدارلار ئۈچۈن loopback نى باغلايدۇ. باشقا ماشىنا ئۇلىنىشقا تېگىشلىك بولغاندا مۇناسىۋەتلىك زىيارەت سىياسىتى بىلەن مەقسەت قىلىنغان كۆرۈنمە يۈزنى ئاتايىن باغلاڭ.

سېرۋېرلارنى خېرىدارلىرىنىڭ خىزمەت يۈكى ئۈچۈن تىرىك تۇتۇڭ. ئىگىسى تاقاش پەيتىدە ھەر بىر سېرۋېرنى ئۇنىڭ قوللىنىدىغان تاقاش ئۇسۇلى بىلەن تاقىشى كېرەك؛ مىسال شۇ ئەپلىكېيشەننىڭ تولۇق ھايات دەۋرىنى بەلگىلىمەيدۇ.

مۇناسىۋەتلىك ماقالىلەر