我正在尝试将所有http请求强制转换为https请求,但我遇到了一个问题:弹性负载均衡器没有在请求中填充x-forwarded-proto头信息。这是我使用的代码,由于这个问题导致了重定向循环。请问我该如何解决这个问题?
app.use (function (req, res, next) {
console.log('Request headers = ' + JSON.stringify(req.headers));
console.log('Request protocol = ' + JSON.stringify(req.protocol));
var schema = (req.headers['x-forwarded-proto'] || '').toLowerCase();
if (schema === 'https') {
next();
} else {
res.redirect('https://' + req.headers.host + req.url);
}
});
app.js
中有两个端口和两个 HTTP 服务器?实际上,这一切都是由 EBS 和负载均衡器自动配置的。这就是问题所在。 - user883499