Tôi đang sử dụng những điều sau để chuyển hướng tất cả các yêu cầu http đến yêu cầu https.Chuyển tiếp http đến https trong ứng dụng tốc độ node.js bằng môi trường EBS & ELB
Tôi có thể thấy từ nhật ký rằng tiêu đề 'x-forwarded-proto' không bao giờ được điền và không được xác định.
app.get('*', function(req, res, next) {
//http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/TerminologyandKeyConcepts.html#x-forwarded-proto
if (req.headers['x-forwarded-proto'] != "https") {
res.redirect('https://' + req.get('host') + req.url);
} else {
next();
}
});
Nó đang gây ra vòng lặp chuyển hướng. Làm thế nào tôi có thể chuyển hướng đúng cách mà không lặp?
Đã thử các đề xuất của bạn và vẫn không hoạt động. Bộ cân bằng tải đàn hồi không đặt tiêu đề phù hợp. 'res.set ('x-forwarded-proto', 'https');' cũng không hoạt động. – user883499
Tìm hiểu lý do tại sao Amazon không đặt tiêu đề hoặc thử kỹ thuật thứ hai của tôi. Tôi nhận thấy rằng 'res.header' giống hệt' res.set', xin lỗi! – Plato
Kỹ thuật thứ hai cũng sẽ không hoạt động như bộ cân bằng tải cho phép http (req.secure luôn luôn sai) luôn yêu cầu ứng dụng. – user883499