proxy-chain: ପ୍ରତ୍ୟେକ listener ପାଇଁ ଅଲଗା ଖାତା ଏବଂ upstream
prepareRequestFunction ମାଧ୍ୟମରେ listener-ନିର୍ଦ୍ଦିଷ୍ଟ Basic ଖାତା ଏବଂ upstream ପଥ ସହିତ proxy-chain Server ଉଦାହରଣ ସୃଷ୍ଟି କରନ୍ତୁ।
proxy-chain ପ୍ରତ୍ୟେକ ଶୁଣିବା ପୋର୍ଟ ପାଇଁ ଗୋଟିଏ Server ଉଦାହରଣ ଚଲାଇପାରେ। ସେହି listener ର ନୀତିକୁ ଏହାର ପ୍ରମାଣୀକରଣ କଲବ୍ୟାକରେ ରଖନ୍ତୁ:
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 ଯୋଗାଇଥାଏ। ପ୍ରତ୍ୟେକ କଲବ୍ୟାକ ନିଜର ନିୟମ ରଖେ, ତେଣୁ ପୋର୍ଟ 8001 ରେ ଖାତା ଗ୍ରହଣ କରିବା ପୋର୍ଟ 8002 ରେ ସେହି ଖାତା ଗ୍ରହଣ କରେ ନାହିଁ।
requestAuthentication true ଏକ Basic ପ୍ରକ୍ସି ଆହ୍ୱାନ ଫେରାଇଥାଏ। ଯେତେବେଳେ ପ୍ରମାଣୀକରଣ ଆବଶ୍ୟକ, ସେହି ଅନୁରୋଧ ପାଇଁ upstreamProxyUrl ଅବହେଳିତ ହୁଏ। ସଫଳ ଆଗମନ ଖାତା ଏବଂ upstream ଖାତା ଅଲଗା ପରିଚୟ।
ପ୍ରତ୍ୟେକ upstream ପାଇଁ ସମର୍ଥିତ URL ବ୍ୟବହାର କରନ୍ତୁ, ଆବଶ୍ୟକ ହେଲେ ଠିକ୍ ଭାବରେ ଏନକୋଡ୍ ହୋଇଥିବା ପ୍ରମାଣପତ୍ର ସହିତ। ପ୍ରମାଣୀକରଣ ବିନା ସାର୍ବଜନୀନ HTTP upstream ପାଇଁ HTTP ପ୍ରକ୍ସି ତାଲିକାରୁ ଜଣେ ପ୍ରାର୍ଥୀ ବାଛନ୍ତୁ ଏବଂ ପ୍ରମାଣପତ୍ର ବିନା ଏହାର URL ତିଆରି କରନ୍ତୁ। ଛାଡ଼ିଦିଆ ଯାଇଥିବା upstream ଅନ୍ୟ ସ୍ୱୟଂଚାଳିତ ପ୍ରକ୍ସି ପରିବର୍ତ୍ତେ ସିଧାସଳଖ ଫରୱାର୍ଡିଂ ବାଛେ।
ଉଦାହରଣ ସ୍ଥାନୀୟ କ୍ଲାଏଣ୍ଟ ପାଇଁ loopback ବାନ୍ଧେ। ଅନ୍ୟ ମେସିନ ସଂଯୋଗ କରିବାକୁ ହେଲେ ସମ୍ବନ୍ଧିତ ପ୍ରବେଶ ନୀତି ସହିତ ଉଦ୍ଦିଷ୍ଟ ଇଣ୍ଟରଫେସ ଜାଣିଶୁଣି ବାନ୍ଧନ୍ତୁ।
ସର୍ଭରଗୁଡ଼ିକୁ ସେମାନଙ୍କ କ୍ଲାଏଣ୍ଟଙ୍କ କାର୍ଯ୍ୟଭାର ପାଇଁ ଜୀବିତ ରଖନ୍ତୁ। ସେମାନଙ୍କ ମାଲିକ ଶଟଡାଉନ ସମୟରେ ପ୍ରତ୍ୟେକ ସର୍ଭରକୁ ଏହାର ସମର୍ଥିତ ବନ୍ଦ ପଦ୍ଧତିରେ ବନ୍ଦ କରିବା ଉଚିତ; ଉଦାହରଣ ସେହି ଆପଣସଂସ୍ଥାର ସମ୍ପୂର୍ଣ୍ଣ ଜୀବନଚକ୍ର ନିର୍ଣ୍ଣୟ କରେ ନାହିଁ।