proxy-chain: külön fiókok és upstream-ek minden listenerhez
Hozzon létre proxy-chain Server példányokat listener-specifikus Basic fiókokkal és upstream útvonalakkal a prepareRequestFunction segítségével.
A proxy-chain listenelő portonként egy Server példányt futtathat. Rögzítse az adott listener szabályzatát a hitelesítési callbackjében:
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()));
Az alkalmazás a fiók értékeit és az upstream URL-eket a szokásos konfigurációján keresztül adja meg. Minden callback megtartja a saját szabályát, így a fiók elfogadása a 8001 porton nem fogadja el azt a fiókot a 8002 porton.
A requestAuthentication true Basic proxy kihívást ad vissza. Ha hitelesítés szükséges, az upstreamProxyUrl figyelmen kívül marad az adott kérésnél. A sikeres bejövő fiók és az upstream fiók külön identitások.
Használjon támogatott URL-t minden upstreamhez, beleértve a megfelelően kódolt hitelesítő adatokat, ha szükséges. Hitelesítés nélküli nyilvános HTTP upstreamhez válasszon jelöltet a HTTP proxy listáról, és állítsa össze az URL-jét hitelesítő adatok nélkül. A kihagyott upstream a közvetlen továbbítást választja egy másik automatikus proxy helyett.
A példa loopbacket köt a helyi kliensekhez. Szándékosan kösse a kívánt interfészt, amikor egy másik gépnek kell csatlakoznia, a megfelelő hozzáférési szabályzattal.
Tartsa életben a szervereket a klienseik terheléséhez. Tulajdonosuknak leállításkor a támogatott lezárási módszerrel kell lezárnia minden szervert; a példa nem határozza meg az adott alkalmazás teljes életciklusát.