proxy-chain kann eng Server-Instanz pro lauschende Port bedreiwen. Halt d'Politik vun deem Listener a sengem Authentifikatiouns-Callback fest:

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

D'Applikatioun liwwert d'Kontowäerter an d'Upstream-URLen iwwer hir normal Konfiguratioun. All Callback behält seng eegen Regel, dofir akzeptéiert d'Konto op Port 8001 net déi Konto op Port 8002.

requestAuthentication true gëtt eng Basic-Proxy-Herausfuerderung zréck. Wa Authentifikatioun erfuerderlech ass, gëtt upstreamProxyUrl fir déi Ufro ignoréiert. Eng erfollegräich erakommend Konto an d'Upstream-Konto sinn ënnerschiddlech Identitéiten.

Benotzt eng ënnerstëtzten URL fir all Upstream, dorënner richteg kodéiert Umeldungsdaten wa néideg. Fir en net-authentifizéierten ëffentlechen HTTP-Upstream wielt ee Kandidat aus der HTTP-Proxy-Lëscht a baut seng URL ouni Umeldungsdaten. En ausgeloossenen Upstream wielt direkt Weiderleitung amplaz vun engem aneren automatesche Proxy.

D'Beispill bindet Loopback fir lokal Clienten. Bind déi virgesinn Interface bewosst, wa sech eng aner Maschinn muss verbannen, mat der entspriechender Zougrëffspolitik.

Halt d'Serveren lieweg fir d'Aarbechtslaascht vun hire Clienten. Hire Besëtzer soll all Server beim Ausschalte iwwer seng ënnerstëtzte Schlussmethod zoumaachen; d'Beispill definéiert net de komplette Liewenszyklus vun där Applikatioun.

Ähnlech Artikelen