我在AWS (Amazon )和DNS "mydomain.com“上使用express和服务器云。
问:如何避免我的用户不得不在浏览器-URL:http://mydomain.com:4000和https://mydomain.com:3000中写作?
这是我的密码:
数独节点app.js
var app = express();
var server = http.createServer(app).listen(4000, function() {
console.log('Express HTTP server listening on port ' + app.get('port'));
});
var server = https.createServer(credentials, app).listen(3000, function() {
console.log('Express HTTPS server listening on port 3000');
});
// redirect all http requests to https
app.use(function(req, res, next) {
if(!req.secure) {
return res.redirect(['https://mydomain.com', req.url].join(''));
}
next();
});我希望我的用户能够使用没有端口号的http和https编写我的域名。我已经有了一个SSL证书,而且一切都很好,但是我还没有能够删除端口号并同时使用: https和http。
有什么想法吗?(请:)
我使用平均叠加(Mongo,Express,角形,)
发布于 2014-06-13 22:24:02
唯一的方法是使用协议的默认端口。也就是说,端口80用于HTTP,端口443用于HTTPS。
如果不使用默认协议端口,那么浏览器(或用户使用的任何客户端)确定连接到哪个端口的唯一方法是用户在URL中指定该端口。
编辑-解决上述关于不同服务器对象的评论
在问题中的代码中,您创建了一个HTTP服务器,然后使用变量server保存对对象的引用。然后创建一个HTTPS服务器并将其分配给相同的变量。如果稍后在代码中使用server变量,那么您将处理HTTPS服务器对象,但无法引用HTTPS对象。
要解决这个问题,只需使用两个不同的变量来保存对象引用。
var httpServer = http.createServer ....
var httpsServer = https.createServer ....https://stackoverflow.com/questions/24214530
复制相似问题