所以说我有承载如问题描述既是一个HTTP和HTTPS服务器的node.js应用程序:How to force SSL/https in Express.jsnode.js托管SSL?
在我的代码,我有以下几点:
// General configuration settings for production usage
app.configure(function() {
app.set('port', process.env.PORT || 3000);
app.set('sslport', process.env.SSLPORT || 4000);
...
}
http.createServer(app).listen(app.get('port'), function() {
winston.info('Express server listening on port ' + app.get('port'));
});
var options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
};
https.createServer(options, app).listen(app.get('sslport'), function() {
winston.info('Express server listening on port ' + app.get('sslport'));
});
这对于工作完全正常本地运行的节点服务器。
不过,我想我的网站发布到像Azure网站,Heroku的,Nodejitsu等
所有云主机的云托管提供商似乎设置process.env.PORT
值,但只有一个。当我的HTTPS服务器被创建时,这通常会导致应用程序崩溃,因为端口已被使用/访问被拒绝等。
那么,如何创建/托管一个只有一个端口的安全登录页面与!一起工作?
你是说你只能听一个端口?你想要在该端口上的普通和ssl连接? –
@TarandeepGill我* *正在监听代码中的两个端口,但在Azure上我只分配了一个端口,所以第二个https服务器创建调用失败。 – Siyfion