proxy-chain jista' jmexxi istanza Server waħda għal kull port ta' smigħ. Aqbad il-politika ta' dak il-listener fil-callback tal-awtentikazzjoni tiegħu:

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()));

L-applikazzjoni tforni l-valuri tal-kontijiet u l-URLs tal-upstream permezz tal-konfigurazzjoni normali tagħha. Kull callback iżomm ir-regola tiegħu, għalhekk l-aċċettazzjoni tal-kont fuq il-port 8001 ma taċċettax dak il-kont fuq il-port 8002.

requestAuthentication true jirritorna sfida tal-proxy Basic. Meta l-awtentikazzjoni hija meħtieġa, upstreamProxyUrl jiġi injorat għal dik it-talba. Kont deħlin li jirnexxi u l-kont tal-upstream huma identitajiet distinti.

Uża URL appoġġata għal kull upstream, inklużi kredenzjali kkodifikati kif suppost meta jkun meħtieġ. Għal upstream HTTP pubbliku mingħajr awtentikazzjoni, agħżel kandidat mil-lista tal-proxy HTTP u ibni l-URL tiegħu mingħajr kredenzjali. Upstream li jitħalla barra jagħżel it-trasferiment dirett minflok proxy awtomatiku ieħor.

L-eżempju jorbot loopback għall-klijenti lokali. Orbot l-interface maħsuba b'mod intenzjonat meta magna oħra trid tikkonnettja, bil-politika ta' aċċess korrispondenti.

Żomm is-servers ħajjin għat-tagħbija tax-xogħol tal-klijenti tagħhom. Is-sid tagħhom għandu jagħlaq kull server permezz tal-metodu tal-għeluq appoġġat tiegħu waqt l-għeluq; l-eżempju ma jiddefinixxix iċ-ċiklu tal-ħajja sħiħ ta' dik l-applikazzjoni.

Artikli relatati