Как правильно прокси сервер, используя Node.js - PullRequest
0 голосов
/ 01 марта 2020

В этом конкретном случае c я создаю прокси для другого сервера - прокси-сервер может быть включен или выключен, прокси-сервер всегда будет работать и перенаправит запрос только тогда, когда прокси-сервер вернется в оперативный режим. Итак, у меня есть этот код:

const s = http.createServer((req, res) => {

  console.log('got a request, state:', cache);

  const forwardReq = () => {
    const r = http.request({
      method: req.method,
      headers: req.headers,
      path: req.url,
      port: 2020,
      hostname: 'localhost',
      protocol: 'http:',
    }, incomingRes => {
      incomingRes.pipe(res)
    });

    req.pipe(r);
  };

  if(cache.state === 'LIVE'){
    return forwardReq();
  }

  waiting.push(forwardReq);  // push the func onto a queue, to be called later

});

кажется, что он работает, но мне интересно, есть некоторые крайние случаи, о которых мне следует беспокоиться. У меня один вопрос: нужно ли мне вручную устанавливать заголовки в ответе или достаточно r.pipe (res)?

    const forwardReq = () => {
      const r = http.request({ ... },
        incomingRes => {
         for(const [k,v] of Object.entries(incomingRes.headers)){
          res.set(k,v);    // manually set headers here?
         }
         incomingRes.pipe(res)
      });

      req.pipe(r);
   };

Я думаю, мне не нужно вручную устанавливать заголовки на ответ, но я не уверен. В этом случае мне не нужно беспокоиться о HTTPS, поскольку он находится на локальном хосте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...