首页 > 解决方案 > NodeJS 无法重定向(甚至看到)一些传入的请求

问题描述

使用本教程,我能够使用 SSL 密钥设置 NodeJS。它创建了两个 http 服务器(一个安全,一个不安全)。

var app = express();
var sslOptions = {}; // SSL key stuff in here

var https = require('https');
https.createServer(sslOptions, app).listen(443);

var http = require('http');
http.createServer(app).listen(80);

然后它检查任何传入的请求——如果它不安全,它将它重定向到安全的 URL

app.use(function(req, res, next) {
  console.log('request... ' + req.url); // I don't see this 
  if (req.secure) {
    console.log('secure ' + req.url);
    next();
  } else {
    console.log('redirect... https://' + req.headers.host + req.url);
    res.redirect('https://' + req.headers.host + req.url);
  }
});

当我开始使用新的浏览器时,我看到一些请求进入,例如 favicon.ico。但是对 www.mydomain.com 的实际请求似乎一起绕过了这一切(就像我对端点发出的请求一样)。更糟糕的是,我曾一度让这个工作。不知道我做了什么来打破它。Anywho,结果是http://www.example.com试图访问https://www.example.com/endpoint的端点并且失败(更不用说不加载页面的安全版本)。

标签: node.jsssl

解决方案


推荐阅读