Создание Node proxy - время ожидания сокета для цепочки запросов - PullRequest
0 голосов
/ 30 января 2020

Я пытаюсь создать простой прокси-узел, который перенаправляет трафик c на два разных URL-адреса. При входящем трафике c через прокси-сервер попытается перенаправить на localhost: 9090, и если в приложении не будет совпадения URL-адресов, приложение отправит 3xx и перенаправит трафик c на другой URL-адрес другого приложения. Я вижу время ожидания сокета для запроса перенаправления во второе приложение и не могу понять, почему. Кто-нибудь знает, вызовет ли такая цепочка запросов проблему? Фрагмент кода прилагается ниже:

const https = require('https');
const request = require('request');
const server = require('../server');
const fs = require('fs');
const path = require('path');

const options = {
  key: fs.readFileSync(path.resolve('./secret/key.pem')),
  cert: fs.readFileSync(path.resolve('./secret/cert.pem'))
};

function onReq(cReq, cRes) {

      cReq.pipe(request(`http://localhost:9090`)
        .on('response', (res) => {
          if (res.statusCode === 3xx) {
            cReq.pipe(request(`https://abc123xxx.org`)
              .on('response', (resp) => {
                res.pipe(cRes);
              }));

          } else {
            res.pipe(cRes);
          }
        }));   
}

https.createServer(options, onReq).listen(443);
...