2012-06-11 2 views
3

Я пытаюсь реализовать простейший пример:Как использовать http-proxy node.js для регистрации HTTP-трафика на компьютере?

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

httpProxy.createServer(function (req, res, proxy) { 
    // 
    // I would add logging here 
    // 
    proxy.proxyRequest(req, res, { host: 'www.google.com', port: 80 }); 
}).listen(18000); 

Когда я настроить свой браузер, чтобы использовать этот прокси-сервер, и я перейти к www.google.com я не получаю никакого ответа. Что я делаю неправильно?

Я использую Windows 7 Chrome

+0

Вы можете указать, какую ОС и какой браузер? Каждый обрабатывает прокси по-разному. – badunk

+0

Это работает для вас с последними изменениями в библиотеке? Похоже, что теперь необходимо передать поле 'target' в параметрах, иначе просто запустить приведенный выше код дает мне« Должен указать действительный URL для цели » –

ответ

5

Вот простой пример, как регистрировать запросы. Я использую аналогично регистрации всех моих доменов в одной базе данных.

Я скопировал много из http://blog.nodejitsu.com/http-proxy-middlewares

var fs = require('fs'), 
    http = require('http'), 
    httpProxy = require('http-proxy'), 

logger = function() {  
    // This will only run once 
    var logFile = fs.createWriteStream('./requests.log'); 

    return function (request, response, next) { 
    // This will run on each request. 
    logFile.write(JSON.stringify(request.headers, true, 2)); 
    next(); 
    } 
} 

httpProxy.createServer(
    logger(), // <-- Here is all the magic 
    { 
    hostnameOnly: true, 
    router: { 
     'example1.com': '127.0.0.1:8001', // server on localhost:8001 
     'example2.com': '127.0.0.1:8002' // server 2 on localhost:8002 
    } 
}).listen(8000); 
+0

Должно ли это работать? Я пытаюсь регистрировать запросы, когда я обращаюсь к различным URL-адресам, но не могу понять это ... – Valip

+0

Это больше не работает, так как теперь необходимо передать какое-либо целевое или форвардное поле в параметрах , Выполнение приведенного выше кода дает мне Должен предоставить действительный url для Target. –

0

Я не уверен, если это поможет, потому что отправляемая информация действительно коротка. Но я нашел пост, что обновленный API-интерфейс ...

вы можете проверить это сообщение:

Обновление для узла-HTTP-прокси v0.5.0 http://blog.nodejitsu.com/updating-node-http-proxy

 Смежные вопросы

  • Нет связанных вопросов^_^