Maaaring magpatakbo ang proxy-chain ng isang instance ng Server bawat port na pinakikinggan. Itala ang patakaran ng listener na iyon sa callback ng pagpapatotoo nito:

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

Ibinibigay ng aplikasyon ang mga halaga ng account at URL ng upstream sa pamamagitan ng karaniwang configuration nito. Pinapanatili ng bawat callback ang sarili nitong tuntunin, kaya ang pagtanggap ng account sa port 8001 ay hindi tumatanggap ng account na iyon sa port 8002.

Nagbabalik ang requestAuthentication true ng Basic proxy challenge. Kapag kailangan ang pagpapatotoo, binabalewala ang upstreamProxyUrl para sa kahilingang iyon. Ang matagumpay na papasok na account at ang upstream account ay magkaibang pagkakakilanlan.

Gumamit ng sinusuportahang URL para sa bawat upstream, kabilang ang maayos na naka-encode na mga kredensyal kapag kailangan. Para sa pampublikong HTTP upstream na walang pagpapatotoo, pumili ng kandidato mula sa listahan ng HTTP proxy at buuin ang URL nito nang walang kredensyal. Ang tinanggal na upstream ay pumipili ng direktang pagpapasa sa halip na ibang awtomatikong proxy.

Ibinibigkis ng halimbawa ang loopback para sa mga lokal na kliyente. Sadyang ibigkis ang inilaan na interface kapag may ibang makina na kailangang kumonekta, kasama ang katumbas na patakaran sa pag-access.

Panatilihing buhay ang mga server para sa kargada ng kanilang mga kliyente. Dapat isara ng may-ari ang bawat server sa pamamagitan ng sinusuportahang paraan ng pagsasara kapag pinapatay; hindi tinutukoy ng halimbawa ang buong siklo ng buhay ng aplikasyong iyon.

Kaugnay na mga artikulo