proxy-chain හට සවන් දෙන සෑම port එකකටම එක් 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 port එකේ ගිණුම පිළිගැනීම 8002 port එකේ එම ගිණුම පිළිනොගනී.

requestAuthentication true යනු Basic proxy අභියෝගයක් ලබා දෙයි. සත්‍යාපනය අවශ්‍ය වූ විට එම ඉල්ලීම සඳහා upstreamProxyUrl නොසලකා හරිනු ලැබේ. සාර්ථක ආගමන ගිණුම සහ upstream ගිණුම වෙනස් අනන්‍යතා වේ.

සෑම upstream එකකටම ආධාරක URL එකක් භාවිත කරන්න, අවශ්‍ය විට නිවැරදිව කේතනය කළ අක්තපත්‍ර ඇතුළුව. සත්‍යාපනයක් නොමැති පොදු HTTP upstream එකකට HTTP proxy ලැයිස්තුවවෙන් අපේක්ෂකයෙකු තෝරා අක්තපත්‍ර නොමැතිව එහි URL ගොඩනගන්න. ඉවත් කළ upstream එකක් වෙනත් ස්වයංක්‍රීය proxy එකක් වෙනුවට සෘජු යොමු කිරීම තෝරයි.

උදාහරණය දේශීය සේවාලාභීන් සඳහා loopback බැඳ තබයි. තවත් යන්ත්‍රයක් සම්බන්ධ විය යුතු විට අදාළ ප්‍රවේශ ප්‍රතිපත්තිය සමඟ අදහස් කළ අතුරුමුහුණත හිතාමතා බැඳ තබන්න.

සේවාදායක ඒවායේ සේවාලාභීන්ගේ කාර්ය භාරය සඳහා ජීවමානව තබන්න. ඒවායේ හිමිකරු විසින් වසා දැමීමේදී සෑම සේවාදායකයක්ම එහි ආධාරක වසා දැමීමේ ක්‍රමයෙන් වසා දැමිය යුතුය; උදාහරණය එම යෙදුමේ සම්පූර්ණ ජීවන චක්‍රය අර්ථ දක්වන්නේ නැත.

අදාළ ලිපි