Skip to content

Instantly share code, notes, and snippets.

@wprudencio
Created November 8, 2014 15:36
Show Gist options
  • Save wprudencio/31e10c96040b4246782a to your computer and use it in GitHub Desktop.
Save wprudencio/31e10c96040b4246782a to your computer and use it in GitHub Desktop.
A HTTP Proxy Server in 20 Lines of node.js Code
//From here: http://www.catonmat.net/http-proxy-in-nodejs/
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);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment