大家好,所以我将ELB配置为使用SSL证书,但是效果很好,但是,如果用户通过HTTP访问端口80上的我的网站,该网站不会将其重定向到HTTPS安全连接,我仍然遇到问题。这是我的ELB配置的屏幕截图,如Elastic Beanstalk配置选项卡所示。任何帮助表示赞赏,谢谢。
这根本不是多余的东西,我只需要添加以下代码:
if (process.env.NODE_ENV === "production" || process.env.NODE_ENV === "awsDevelopmentServer") {
app.use(function(req, res, next) {
// Insecure request?
if (req.get("x-forwarded-proto") == "http") {
// Redirect to https://
return res.redirect("https://" + req.get("host") + req.url);
}```
虽然您似乎可以通过在应用程序中进行重定向来使其正常工作,但[[有可以完全在ALB中进行此重定向。文档:https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html
此功能于2018年7月发布。https://aws.amazon.com/about-aws/whats-new/2018/07/elastic-load-balancing-announces-support-for-redirects-and-fixed-responses-for-application-load-balancer/Elastic Beanstalk可能尚未启动自己的支持来进行配置。您也许可以通过ebextensions对其进行配置,但是现在最好只在您的应用程序中进行配置。