proxy-chain lahko izvaja en primerek Server na vsak poslušajoči vrata. Zabeležite politiko tega listenerja v njegovem povratnem klicu za preverjanje pristnosti:

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

Aplikacija zagotavlja vrednosti računov in URL-je upstream prek svoje običajne konfiguracije. Vsak povratni klic ohrani svoje pravilo, zato sprejem računa na vratih 8001 ne sprejme tega računa na vratih 8002.

requestAuthentication true vrne izziv proxy Basic. Ko je potrebna preverjanje pristnosti, se upstreamProxyUrl za to zahtevo prezre. Uspešen dohodni račun in račun upstream so ločene identitete.

Za vsak upstream uporabite podprt URL, vključno s pravilno kodiranimi poverilnicami, kadar je to potrebno. Za javni HTTP upstream brez preverjanja pristnosti izberite kandidata s seznama proxy HTTP in sestavite njegov URL brez poverilnic. Izpuščen upstream izbere neposredno posredovanje namesto drugega samodejnega proxyja.

Primer veže loopback za lokalne odjemalce. Namenoma vežite predvideni vmesnik, ko se mora povezati drug stroj, z ustrezno politiko dostopa.

Ohranjajte strežnike žive za delovno obremenitev njihovih odjemalcev. Njihov lastnik naj ob zaustavitvi zapre vsak strežnik s podprto metodo zapiranja; primer ne opredeljuje celotnega življenjskega cikla te aplikacije.

Sorodni članki