Я хотел бы создать простой прокси-сервер 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, и затем перенаправить запрос на правильный путь. Какие-нибудь подсказки, используя фрагмент выше?
Спасибо