首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS监听一个域名的HTTPS和HTTPS

NodeJS监听一个域名的HTTPS和HTTPS
EN

Stack Overflow用户
提问于 2014-06-13 22:20:30
回答 1查看 1.7K关注 0票数 0

我在AWS (Amazon )和DNS "mydomain.com“上使用express和服务器云。

问:如何避免我的用户不得不在浏览器-URL:http://mydomain.com:4000https://mydomain.com:3000中写作?

这是我的密码:

数独节点app.js

代码语言:javascript
复制
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,角形,)

EN

回答 1

Stack Overflow用户

发布于 2014-06-13 22:24:02

唯一的方法是使用协议的默认端口。也就是说,端口80用于HTTP,端口443用于HTTPS。

如果不使用默认协议端口,那么浏览器(或用户使用的任何客户端)确定连接到哪个端口的唯一方法是用户在URL中指定该端口。

编辑-解决上述关于不同服务器对象的评论

在问题中的代码中,您创建了一个HTTP服务器,然后使用变量server保存对对象的引用。然后创建一个HTTPS服务器并将其分配给相同的变量。如果稍后在代码中使用server变量,那么您将处理HTTPS服务器对象,但无法引用HTTPS对象。

要解决这个问题,只需使用两个不同的变量来保存对象引用。

代码语言:javascript
复制
var httpServer = http.createServer ....
var httpsServer = https.createServer ....
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24214530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档