Есть ли решение, которое позволяет Node.js действовать как обратный прокси-сервер HTTP? - PullRequest
3 голосов
/ 06 февраля 2010

У нашей компании есть проект, который сейчас использует nginx в качестве обратного прокси-сервера для обслуживания статического контента и поддержки комет-соединений.Мы используем длинные опрашивающие соединения, чтобы избавиться от постоянных запросов на обновление и позволить пользователям немедленно получать обновления.

Теперь я знаю, что для Node.js уже написано много кода, но есть ли решение, позволяющее Node.js действует как обратный прокси для обслуживания статического контента, как это делает nginx?Или, может быть, есть фреймворк, позволяющий быстро разработать такой слой с помощью Node.js?

Ответы [ 2 ]

3 голосов
/ 08 февраля 2010

dogproxy может помочь вам, если не в качестве полного решения, то, возможно, в качестве строительных блоков для одного.

Однако вы можете пересмотреть вопрос о сохранении nginx для обслуживания статического контента - он специально разработан и настроен для этой конкретной задачи. Вы бы добавили много накладных расходов при использовании node.js для обслуживания статического содержимого - очень похоже на использование PHP для обслуживания статических файлов.

2 голосов
/ 30 июля 2010

node-http-proxy звучит так, как вы хотите

var sys = require('sys'),
  http = require('http'),
  httpProxy = require('http-proxy').httpProxy;

http.createServer(function (req, res){
    var proxy = new httpProxy;
    proxy.init(req, res);
    proxy.proxyRequest('localhost', '9000', req, res);
}).listen(8000);

http.createServer(function (req, res){
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2));
    res.end();
}).listen(9000);
...