我知道這已經被問及在這裏回答,但仍然沒有解決方案爲我工作。這裏是app.js:node.js express + aws elb - 從http重定向到https不工作
var express = require('express');
var app = express();
app.all(function(req, res, next){
if((!req.secure) && (req.get('X-Forwarded-Proto') !== 'https'))
{
console.log (req.get('Host'));
console.log("not secure");
res.redirect('https://' + req.get('Host') + req.url);
}
else{
console.log("secure");
next();
}
}
);
app.use(express.static('./server/static/'));
app.listen(8080);
我已經嘗試使用app.use,但它仍然無法正常工作。 我們正在使用AWS ELB,以下是聽衆:
LB Protocol | LB端口|實例協議|實例端口
HTTPS | 443 | HTTP | 8080
HTTP | 80 | HTTP | 8080
正如其他帖子所述,我的請求標題中沒有看到'x-forwarded-proto'。我相信聽衆已經正確配置,以便他們應該包含「x轉發」標題,但事實並非如此。
當我嘗試在沒有https的情況下點擊dns時,它不會被重定向到https。 但是,http和https url都能單獨工作。
請幫我弄清楚我缺少什麼或者是否需要提供更多信息。
@robertklep我可以請你看看這個嗎?對於這種絕望的求助呼籲感到抱歉,但我已經看到了你對這些帖子的回答和評論。 – learner