Skip to content

Instantly share code, notes, and snippets.

@stilkov
Created March 8, 2011 13:24

Revisions

  1. stilkov revised this gist Mar 8, 2011. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion node-proxy.js
    Original file line number Diff line number Diff line change
    @@ -8,7 +8,6 @@ var sys = require("sys"),
    var port = parseFloat(process.argv[2]) || 8081;

    var options = function(request) {
    // ...
    var uri = url.parse(request.url);
    var opt = {
    host: uri.hostname,
  2. stilkov created this gist Mar 8, 2011.
    36 changes: 36 additions & 0 deletions node-proxy.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,36 @@
    var sys = require("sys"),
    http = require("http"),
    url = require("url"),
    util = require("util"),
    path = require("path"),
    fs = require("fs");

    var port = parseFloat(process.argv[2]) || 8081;

    var options = function(request) {
    // ...
    var uri = url.parse(request.url);
    var opt = {
    host: uri.hostname,
    port: uri.port || 80,
    path: uri.pathname,
    method: request.method,
    headers: request.headers
    };
    opt.headers['connection'] = 'keep-alive';
    return opt;
    }

    http.createServer(function(request, response) {
    sys.log("--> " + request.url);
    var remoteRequest = http.request(options(request), function (remoteResponse) {
    response.writeHead(remoteResponse.statusCode, remoteResponse.headers);
    remoteResponse.on('end', function () {
    sys.log("<-- " + response.statusCode + " " + request.url);
    });
    util.pump(remoteResponse, response);
    });
    util.pump(request, remoteRequest);
    }).listen(port);

    sys.log('Listening on port ' + port);