Skip to content

Routing proxy with access logging

c-ab edited this page Dec 30, 2012 · 2 revisions

One of the useful methods of running http-proxy is as a routing proxy. The following configuration will configure http-proxy as a routing proxy with an access logger. In the example, http-proxy routes to 2 node applications, listening on port 3010 and 3020 respectively:

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

var options = { router: {
  '/page1$'  : localhost:3010,
  '/page2$'  : localhost:3020,
  // default route
  '.*'       : localhost:3020
}}

var router = new httpProxy.RoutingProxy(options);
var proxy = httpProxy.createServer(function(req,res) {
    console.log("request: " + req.path + "; method: " + req.method);
    router.proxyRequest(req,res);
});

proxy.listen(3000, function() { console.log("Routing proxy listening on " + proxy.address().port); });

the above example uses console.log, but you could use any logging library, e.g. winston, to create access logs with info from req and res.

Clone this wiki locally