2015-05-26 99 views
0

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

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

这里是我的代码剪断与谷歌进行测试作为目标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); 
+0

我想我可以通过从服务器创建对象中删除'agent'和'headers'字段来解决它。 – Isolin

回答

0

解决的办法是:

使用默认SampleApp和自我内创建一个代理对象:

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); 
};