Nodejitsu上的HTTPS使用Express

时间:2013-05-15 13:33:00

标签: node.js express nodejitsu node-http-proxy

好。我有一个快递的应用程序,它也使用Socket.io并通过HTTP工作正常。但是,现在我必须转向HTTPS。 Nodejitsu提供了大量关于此的文档。他们建议使用node-http-proxy(https://github.com/nodejitsu/node-http-proxy)。精细!

来自HTTP的代码:

var server = http.createServer(app) // app is an Express instance
server.listen(config.port,config.hostip) // config.port is 80 for localhost and 3000 for Nodejitsu, config.hostip is 127.0.0.1 for localhost and 0.0.0.0 for Nodejitsu

我明白了:

var server = http.createServer(app)
var options = {
  https: {
    key: fs.readFileSync(__dirname+"/ssl/privatekey.pem", 'utf8'),
    cert: fs.readFileSync(__dirname+"/ssl/certificate.pem", 'utf8')
  }
}
httpProxy.createServer(config.port, config.hostip, options).listen(3001,config.hostip)
var proxy = new httpProxy.HttpProxy({
  target: {
    host: config.hostip, 
    port: config.port
  }
})
https.createServer(options.https, function (req, res) {
  proxy.proxyRequest(req, res)
}).listen(3002,config.hostip)
server.listen(config.port,config.hostip)

当我最终部署(部署期间没有错误)时,我访问该页面并看到502错误Socket挂起。好吧,我可能做错了,所以我只是复制并粘贴https://github.com/nodejitsu/node-http-proxy“Proxying to HTTP from HTTPS”中的示例,以检查它是否有效。但它没有 - 502错误。

虽然在我的localhost上工作正常。我还试图启动没有node-https-proxy的独立HTTPS服务器,但没有运气。请帮助,我几周都无法解决这个问题。

1 个答案:

答案 0 :(得分:2)

我自己找到。 Nodejitsu默认提供SSL,只需通过HTTPS://访问您的网站。要使自定义域应用SSL证书,您需要订阅业务计划。