【发布时间】:2013-02-08 04:57:54
【问题描述】:
假设我有一个同时托管 HTTP 和 HTTPS 服务器的 node.js 应用程序,如问题中所述:How to force SSL / https in Express.js
在我的代码中,我有以下内容:
// 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 服务器时,这通常会导致应用程序崩溃,因为 PORT 已在使用/拒绝访问等。
那么我该如何创建/托管一个只有一个端口可以使用的安全登录页面!?
【问题讨论】:
-
你是说只能监听一个端口?你想要那个端口上的普通连接和 ssl 连接?
-
@TarandeepGill 我am在代码中监听两个端口,但在 Azure 上我只分配了一个端口,因此第二个 https 服务器创建调用失败。
标签: node.js cloud-hosting