将HTTP重定向到https AWS Application Load Balancer

问题描述 投票:0回答:2

大家好,所以我将ELB配置为使用SSL证书,但是效果很好,但是,如果用户通过HTTP访问端口80上的我的网站,该网站不会将其重定向到HTTPS安全连接,我仍然遇到问题。这是我的ELB配置的屏幕截图,如Elastic Beanstalk配置选项卡所示。任何帮助表示赞赏,谢谢。elb config

ssl redirect amazon-elastic-beanstalk amazon-elb
2个回答
0
投票

这根本不是多余的东西,我只需要添加以下代码:

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);
    }```

0
投票

虽然您似乎可以通过在应用程序中进行重定向来使其正常工作,但[[有可以完全在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对其进行配置,但是现在最好只在您的应用程序中进行配置。

© www.soinside.com 2019 - 2024. All rights reserved.