Har*_*rry 27 javascript ssl https node.js express
我正在运行一个node.js表示没有代理并使用SSL的3服务器.
我试图找出如何强制所有连接通过https.
谷歌搜索向我显示:
https://groups.google.com/forum/#!topic/express-js/Bm6yozgoDSY
目前没有办法强制https重定向,虽然这似乎有点奇怪的解决方法.我们有一个仅限https的应用程序,我们只有一个简单的~4行节点http服务器重定向,没什么特别的
这就是我需要的,但他并没有说这四行是什么.
我们如何做到这一点?谢谢.
Pie*_*rre 80
当只有一个服务器可以完美地完成工作时,我真的不明白启动两台服务器的重点.例如,通过在服务器文件中添加一个简单的中间件:
app.use(function(req, res, next) {
if(!req.secure) {
return res.redirect(['https://', req.get('Host'), req.url].join(''));
}
next();
});
Run Code Online (Sandbox Code Playgroud)
这会将任何非安全请求重定向到相应的HTTPS页面.例如,http://example.com/要https://example.com/和http://example.com/foo?bar=woo到https://example.com/foo?bar=woo.这绝对是我期望的行为.也许你应该按主机过滤它,所以它只在你拥有的域上重定向并安装了适当的证书.
如果您的应用程序在Nginx等其他服务器后面运行,您可能需要添加配置参数app.set('trust proxy', true).或者,更好的是,让Nginx自行重定向,这将比任何Node.js应用程序更有效.
编辑:根据我的基准测试,join比+连接字符串快一点.没什么戏剧性的,但每一次胜利都是胜利......
| 归档时间: |
|
| 查看次数: |
9710 次 |
| 最近记录: |