0

我们想通过 appfog 上的 node.js 代理上网冲浪。

我们尝试了这段代码:

proxy2a.js:

var http = require('http');

var port = process.env.VCAP_APP_PORT || 8080;
  console.log ('the portnumber is:   '+ port) ;
http.createServer(function(request, response) {
    var proxy = http.createClient(80, "checkip.dyndns.org");
    var proxy_request = proxy.request(request.method, request.url, request.headers);
    proxy_request.on('response', function (proxy_response) {
        proxy_response.pipe(response);
        response.writeHead(proxy_response.statusCode, proxy_response.headers);
        console.log(proxy_response.statusCode)  ;
    });

    request.pipe(proxy_request);
}).listen(port);

包.json:

{
    "name": "proxy2a",
    "author": "parker",
    "version": "0.0.0-14",
    "dependencies": {



    },
    "devDependencies": {},
    "optionalDependencies": {},
    "engines": {
        "node": "0.6.x",
        "iisnode": "*"
    },
    "scripts": {
        "start": "node proxy2a.js"
    }
}

我们有这个问题的代码。(实际上我们只需要服务器访问一个网站,所以这个服务器只服务一个就可以了。)当我们在本地机器上运行服务器时,这段代码效果很好。(使用节点版本0.6.x。)但是当我们部署到appfog,没有反应。(我们通过使用另一个控制台 ping 部署 url 来获取 ip。)你知道如何让这样的代理服务器在 appfog 或任何其他 node.js 主机上工作吗?

4

1 回答 1

2

您的代码对我来说完全按原样工作。我按原样复制了您的两个文件,并运行了以下命令-

af login
// enter my creds
af update testproxy

然后去http://testproxy.aws.af.cm/就可以了。您确定您正确上传了您的应用程序,使用了正确的域名,并且您的应用程序已启动吗?

(VCAP_APP_PORT 设置为 80,因此您的应用程序将在端口 80 上运行,因为这一行:var port = process.env.VCAP_APP_PORT || 8080;)

于 2013-05-27T09:28:33.463 回答