I am trying to implement the simplest example:
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);
When I configure my browser to use this proxy and I navigate to www.google.com I receive no response. What is that I am doing wrong?
I'm using Windows 7 Chrome
Here is an simple example how to log requests. I use a similar to log all my domains to one database.
I copied much from 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);
I am not sure if this helps because the posted information are really short. But I found a post that they updated the api ...
you might want to check out this post:
Updating to node-http-proxy v0.5.0 http://blog.nodejitsu.com/updating-node-http-proxy
I done like logging the request headers object on the event proxyReq
const http = require('http'),
httpProxy = require('http-proxy'),
fs = require('fs');
const proxy = httpProxy.createProxyServer({});
const logFile = fs.createWriteStream('./requests.log');
proxy.on('proxyReq', function (proxyReq, req, res, options) {
//Log incoming request headers
logFile.write(JSON.stringify(req.headers, true, 2));
});
const server = http.createServer(function (req, res) {
proxy.web(req, res, {
changeOrigin: true,
target: 'example1.com'
});
});
console.log("listening on port 5050")
server.listen(5050);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.