proxy-chain: listener бүрт тусдаа бүртгэл ба upstream
prepareRequestFunction ашиглан listener-т тохирсон Basic бүртгэл болон upstream чиглэл бүхий proxy-chain Server хувилбаруудыг үүсгэнэ үү.
proxy-chain нь сонсох порт бүрт нэг Server хувилбар ажиллуулж чадна. Тэр listener-ийн бодлогыг түүний баталгаажуулалтын callback-д тэмдэглэнэ үү:
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()));
Аппликейшн бүртгэлийн утгууд болон upstream URL-уудыг ердийн тохиргоогоор дамжуулан өгдөг. Callback бүр өөрийн дүрмийг хадгалдаг тул 8001 порт дээр бүртгэлийг хүлээн зөвшөөрөх нь 8002 порт дээр тэр бүртгэлийг хүлээн зөвшөөрөхгүй.
requestAuthentication true нь Basic проксийн сорилт буцаана. Баталгаажуулалт шаардлагатай үед тухайн хүсэлтэд upstreamProxyUrl-ыг үл тоомсорлоно. Амжилттай орж ирсэн бүртгэл болон upstream бүртгэл нь тусдаа таних тэмдэг юм.
Upstream бүрт дэмжигдсэн URL ашиглана уу, шаардлагатай бол зөв кодлогдсон итгэмжлэл-ийг оруулан. Баталгаажуулалтгүй нийтийн HTTP upstream-ийн хувьд HTTP прокси жагсаалт-аас нэр дэвшигч сонгож, URL-ыг нь итгэмжлэлгүйгээр байгуулна уу. Орхигдсон upstream нь өөр автомат прокси биш шууд дамжуулалтыг сонгоно.
Жишээ нь локал клиентүүдэд зориулж loopback-ыг холбодог. Өөр машин холбогдох шаардлагатай үед тохирох хандалтын бодлогын хамт зориулсан интерфейсийг санаатайгаар холбоно уу.
Серверүүдийг клиентүүдийн ажлын ачаалалд зориулж амьд байлгана уу. Тэдний эзэмшигч унтраах үед сервер бүрийг дэмжигдсэн хаах аргаар хаах ёстой; жишээ нь тухайн аппликейшны бүрэн амьдралын мөчлөгийг тодорхойлоогүй.