proxy-chain: kontijiet u upstreams separati għal kull listener
Oħloq istanzi Server ta' proxy-chain b'kontijiet Basic u rotot upstream speċifiċi għal kull listener permezz ta' prepareRequestFunction.
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.