Skip to content

Instantly share code, notes, and snippets.

@chucknthem
Created November 25, 2010 12:29
Show Gist options
  • Save chucknthem/715312 to your computer and use it in GitHub Desktop.
Save chucknthem/715312 to your computer and use it in GitHub Desktop.
Proxy server in node js, logs http requests
var http = require('http');
var sys = require('sys');
server = http.createServer(function(request, response) {
sys.log(request.connection.remoteAddress + ": " +
request.method + " " +
request.url);
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) {
// sys.log("response: " + chunk);
response.write(chunk, 'binary');
});
proxy_response.addListener('end', function() {
response.end();
});
response.writeHead(proxy_response.statusCode,
proxy_response.headers);
});
// prevent connection reset from killing the process
request.socket.removeAllListeners('error');
request.addListener('data', function(chunk) {
sys.log("request: " + chunk);
proxy_request.write(chunk, 'binary');
});
request.addListener('end', function() {
proxy_request.end();
});
request.socket.addListener('error', function(err) {
sys.error("error occured in request socket\n");
sys.inspect(err);
});
});
server.listen(8080);
process.addListener("unhandledException", function (err) {
sys.error("something bad happened!\n");
sys.inspect(err);
sys.error("restarting server");
server.listen(8080);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment