我正在尝试对使用Express 4.16.3和spdy
来支持HTTP / 2的整个应用强制使用HTTPS。通过https
URL方案可以导航,但是显然http
不会发生重定向,因为没有记录调试消息。
const app = express();
const spdy = require('spdy');
app.use(function enforce_ssl(req, res, next)
{
console.log(`${req.method} ${req.protocol}://${req.headers.host}${req.originalUrl}`);
if(req.secure)
next();
else
res.redirect(301, `https://${req.headers.host}${req.originalUrl}`);
});
<...>
const server = spdy.createServer(
{
cert: fs.readFileSync(path.resolve(cwd, 'stub-cert.pem')),
key: fs.readFileSync(path.resolve(cwd, 'stub-privkey.pem')),
}, app);
server.listen(port, (err) =>
{
if(err)
{
console.error(err);
process.exit(1);
}
else
console.log(`Listening on port ${port}!`);
});
server.on('error', (err) => console.error(err));
通过“不安全”协议导航时,出现ERR_EMPTY_RESPONSE
页。该如何解决?