Я пытаюсь заставить все HTTP-запросы к https-запросам, и я столкнулся с проблемой, поскольку эластичный балансировщик нагрузки не заполняет заголовок x-forwarded-proto в запросе.Amazon Elastic load balancer не заполняет заголовок 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);
}
});
Вы имеете в виду два порта, а затем два http-сервера в 'app.js'? Фактически все это автоматически настраивается EBS и балансировщиками нагрузки. Это проблема. – user883499
Что вы подразумеваете под автоматически настроенным? Вы используете эластичный бобовый стебель? Если вы создали балансировщик нагрузки, вы можете настроить слушателей так, как хотите. – datasage
Хорошо, я уже настроил слушателей на разных портах. http на 80 и https на 443. Как использовать эту информацию в моем 'app.js'. Я имел в виду, что после настройки этих слушателей все остальное автоматически выполняется EBS и балансировщиком нагрузки. – user883499