Skip to content

Instantly share code, notes, and snippets.

@krisfoster
Created June 24, 2010 09:08
Show Gist options
  • Save krisfoster/451203 to your computer and use it in GitHub Desktop.
Save krisfoster/451203 to your computer and use it in GitHub Desktop.
Node.js proxy script
var sys = require('sys'),
http = require('http');
var listen_port = 8000;
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) {
sys.log('##########################');
sys.log(request.url);
sys.log(JSON.stringify(proxy_response.headers));
sys.log('##########################');
proxy_response.addListener('data', function(chunk) {
sys.log('##########################');
sys.log(request.url);
sys.log('Data');
if (proxy_response.headers['content-type'].indexOf('text/html') >= 0) {
sys.puts(chunk);
}
sys.log('##########################');
response.write(chunk);
});
proxy_response.addListener('end', function() {
sys.log('##########################');
sys.log(request.url);
sys.log('End');
response.end();
});
response.writeHead(proxy_response.statusCode, proxy_response.headers);
});
request.addListener('data', function(chunk) {
proxy_request.write(chunk);
});
request.addListener('end', function() {
proxy_request.end();
});
}).listen(listen_port);
sys.puts('Starting server on: ' + listen_port);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment