Node.js使用https进行代理

时间:2015-05-26 10:31:40

标签: node.js https proxy

我想设置一个简单的代理,它将我丑陋的长主机地址隐藏到一个漂亮的TLD格式,例如https:// www.qwertyuiop.a-verylong-texthere.co.uk - > http:// awesome.me。不幸的是,我的主持人不支持将TLD绑定到我的服务器。

使用RedHat的OpenShift,我尝试了相应的example nodejitsu优秀的node-http-proxy库,但它的作用是将我重定向到丑陋的长主机地址而不是保持良好的http:// awesome.me网址。任何人都可以告诉我,我做错了什么或我错过了什么?有什么建议可以解决这个问题吗?

这是我的代码剪切了谷歌测试作为目标https服务器:

    var ipaddress = process.env.OPENSHIFT_NODEJS_IP;
    var port      = process.env.OPENSHIFT_NODEJS_PORT || 8080;

    httpProxy.createServer({
        target: 'https://google.com',
        agent  : https.globalAgent,
        headers: {
            host: 'google.com'
        }
    }).listen(port, ipaddress);

1 个答案:

答案 0 :(得分:0)

解决方案是:

使用默认的SampleApp并在self中创建代理对象:

self.proxy = httpProxy.createServer({ 
    ssl: { key: fs.readFileSync('ssl.key'), cert: fs.readFileSync('ssl.crt')},
    target: 'https://awesome.me',
    secure: true
});

然后用以下

替换路线
self.routes['/*'] = function(req, res) {
    self.proxy.web(req, res);
};