TCP / HTTP прокси в node.js - PullRequest
       10

TCP / HTTP прокси в node.js

0 голосов
/ 09 июля 2011

Я хотел бы создать простой прокси-сервер TCP и HTTP в файле node.js. Например, прокси-сервер прослушивает порт 8080 и перенаправляет все TCP-запросы на 127.0.0.1:8181, а все HTTP-запросы на 127.0.0.0.1:8282

.

Я нашел этот фрагмент в Google для простого HTTP-прокси в 20 строках кода:

var http = require('http');

http.createServer(function(request, response) {
  var proxy = http.createClient(80, request.headers['host'])
  var proxy_request = proxy.request(request.method, request.url, request.headers);
  proxy_request.addListener('response', function (proxy_response) {
    proxy_response.addListener('data', function(chunk) {
      response.write(chunk, 'binary');
    });
    proxy_response.addListener('end', function() {
      response.end();
    });
    response.writeHead(proxy_response.statusCode, proxy_response.headers);
  });
  request.addListener('data', function(chunk) {
    proxy_request.write(chunk, 'binary');
  });
  request.addListener('end', function() {
    proxy_request.end();
  });
}).listen(8080);

Так что в основном мне нужно прослушать любой запрос 8080, угадать, является ли он TCP или HTTP, и затем перенаправить запрос на правильный путь. Какие-нибудь подсказки, используя фрагмент выше?

Спасибо

1 Ответ

4 голосов
/ 09 июля 2011

nodejitsu имеет открытый исходный код node-http-proxy , который, я думаю, вы попробуете вместо этого. Документально подтверждено, активно разрабатывается.

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