繁体   English   中英

带有https的Node.js代理

[英]Node.js proxy with https

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

使用RedHat的OpenShift,我已经尝试了nodejitsu出色的node-http-proxy库的相应示例 ,但是它的作用是将我重定向到丑陋的主机地址,而不是保留漂亮的http:// awesome.me url。 谁能告诉我我做错了什么或我想念什么? 有解决问题的建议吗?

这是我与Google一起摘录的代码,以作为目标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);

解决方案是:

使用默认的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);
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM