Javascript 将所有http请求重定向到sails js中的https
我正在尝试找出如何将所有HTTP请求重定向到Sails JS中的HTTPS0.11.0。 我尝试了下面的代码,但不起作用Javascript 将所有http请求重定向到sails js中的https,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,我正在尝试找出如何将所有HTTP请求重定向到Sails JS中的HTTPS0.11.0。 我尝试了下面的代码,但不起作用 var express = require("express"), app = express(); app.get('*', function(req,res) { if(req.isSocket){ return res.redirect('wss://' + req.headers.host + req.u
var express = require("express"),
app = express();
app.get('*', function(req,res) {
if(req.isSocket){
return res.redirect('wss://' + req.headers.host + req.url)
}
else{
return res.redirect('https://' + req.headers.host + req.url)
}
}).listen(80);
我使用nginx进行重定向。 nginx.conf文件中的配置
server {
listen 80;
server_name example.com;
rewrite ^ https://example.com$request_uri? permanent;
}
您可以使用Sails中的http中间件来实现这一点 在config/http.js文件中,向中间件对象添加类似这样的函数
requireHttps: function(req, res, next) {
if (!req.secure) {
return res.redirect('https://' + req.get('host') + req.url);
}
return next();
},
或者像这样(如果您使用Amazon弹性负载平衡器,它可以通过http与您的服务器通信):
然后简单地将“requireHttps”添加到中间件对象中的order数组中,如下所示:
order: [
'startRequestTimer',
'cookieParser',
'session',
'passportInit',
'passportSession',
'bodyParser',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'requireHttps',
'router',
'www',
'favicon',
'404',
'500',
],
HTTPS永远不应该接触端口80,所以我怀疑你们的服务器听到了什么…使用nginx前端服务器,遵循这一点,没有nginx有可能吗?sails js是否提供了任何解决方案?这个问题可能重复:尽管我很感激那里的答案引用了旧版本的sails.js。
order: [
'startRequestTimer',
'cookieParser',
'session',
'passportInit',
'passportSession',
'bodyParser',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'requireHttps',
'router',
'www',
'favicon',
'404',
'500',
],