所以說我有承載如問題描述既是一個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