【问题标题】:AWS load balancer redirect www.example.com to example.com isn't workingAWS 负载均衡器将 www.example.com 重定向到 example.com 不起作用
【发布时间】:2021-04-25 01:20:05
【问题描述】:

目前有一个弹性豆茎环境。

我已经进入了 EC2 下的负载均衡器设置,弹性 beantalk 就在上面。

从那里我选择了唯一的负载均衡器 > 侦听器 > 查看/编辑 80 和 443 端口的规则。

我继续添加主机标头为www.example.com的规则

我还添加了一个 行动:重定向https 端口:443 自定义主机、路径、查询:主机是 example.com 选择的重定向是 301。

我继续为 80 和 443 听众“添加操作”。

问题是它不起作用,当我转到http://www.example.comhttps://www.example.com 时,它不会转到https://example.com

http://example.com 确实转到 https://example.com

【问题讨论】:

  • 您在 EB 环境中运行什么?你用的是什么网络服务器?
  • @markwalker_ 我正在运行一个简单的 nextjs 网络应用程序

标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk


【解决方案1】:

您可以将文件添加到 elasticbeanstalk 将查找的文件以修改堆栈。

为此,首先将一个名为 .ebextensions 的文件夹添加到项目的根目录中。

.ebextensions 文件夹中创建一个名为http-to-https-redirection.config 的文件(或者您会认识的其他名称)。然后在这个文件中粘贴以下内容(这是官方AWS config

Resources:
  AWSEBV2LoadBalancerListener:
    Type: 'AWS::ElasticLoadBalancingV2::Listener'
    Properties:
      DefaultActions:
        - Type: redirect
          RedirectConfig:
            Protocol: HTTPS
            Port: '443'
            Host: '#{host}'
            Path: '/#{path}'
            Query: '#{query}'
            StatusCode: HTTP_301
      LoadBalancerArn:
        Ref: AWSEBV2LoadBalancer
      Port: 80
      Protocol: HTTP
  AWSEBV2LoadBalancerListenerHTTPS:
    Type: 'AWS::ElasticLoadBalancingV2::Listener'
    Properties:
      Certificates:
        - CertificateArn: Replace with Certificate ARN
      DefaultActions:
        - Type: forward
          TargetGroupArn:
            Ref: AWSEBV2LoadBalancerTargetGroup
      LoadBalancerArn:
        Ref: AWSEBV2LoadBalancer
      Port: 443
      Protocol: HTTPS

您只需要填写适合您所做的重定向详细信息。

AWS 在 github 上提供更多示例配置文件; https://github.com/awsdocs/elastic-beanstalk-samples

【讨论】:

    【解决方案2】:

    official document 说你做得对。所以这不是 ALB 问题。

    我认为您的 EB 配置有问题(或者可能是 @MarkB 在 cmets 中所说的 DNS)。

    目前,我只能说,如果你不配置任何东西,基本上www.example.com与example.com无关

    您的“两个”域(www.example.comexample.com)是否指向由 EB 托管的同一页面?

    【讨论】:

    • 我该如何诊断?
    • 那不是EB配置问题,而是DNS配置问题。
    • @MarkB 你的意思是我应该去路由 53,去指定的托管区域,创建一条 A 记录并将别名指向负载均衡器吗?
    • @MarkB 您能回答一下您对 DNS 的哪个问题有疑问吗?也许它可能是由 DNS 引起的,但我不知道这种方式。
    • @ShaunChua 其实还有很多其他的方法可以做你想做的事。使用 Route53 可能就是其中之一。但我更感兴趣的是了解为什么您的方法不起作用。
    猜你喜欢
    • 1970-01-01
    • 2017-03-10
    • 2015-03-18
    • 2020-12-21
    • 2020-08-21
    • 2017-02-19
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    相关资源
    最近更新 更多