HTTP 到 HTTPS 重定向在 AWS ALB 上不起作用

Usa*_*ama 6 wordpress nginx amazon-web-services amazon-elb

我正在将 ECS 用于 WordPress 网站,并使用应用程序负载均衡器 (ALB) 进行负载均衡和卸载 SSL。ALB 在端口 80 和 443 上使用 2 个不同的侦听器。重定向规则附加到端口 80 侦听器,即:

Redirect tohttps://#{host}:443/#{path}?#{query} 
Status code:HTTP_301
Run Code Online (Sandbox Code Playgroud)

网络服务器是带有 php-fpm 的 nginx,并监听端口 80。nginx 没有进行重定向。

所以,基本上我想要的是 http (user req) -> https (ALB 重定向) -> http (nginx)

现在的问题是 ALB 没有像这样重定向主页的 http 流量

http://example.com -> http://example.com (ALB 无重定向) -> http://example.com (nginx)

但它适用于相同的域但不同的 URL,例如:

http://example.com/page -> https://example.com/page (ALB 重定向) -> http://example.com/page (nginx)

编辑:这是ALB 侦听器规则的链接。

Dav*_*nck 10

如果其他答案不起作用,请仔细检查您的安全组是否允许端口 80 上的入站连接

  1. 转到您的负载均衡器
  2. 点击Description。向下滚动Security Groups找到您的安全组
  3. 单击您的安全组并检查端口 80 上是否允许入站连接。如果不允许,请添加它们。即使您从端口 80 重定向流量,如果它们在这里被阻止,它们也永远无法到达该步骤。

安全组规则


chr*_*ris 0

不确定你做错了什么,但端口 80 侦听器可以处理重定向到 https。

您可以手动更新端口 80 侦听器,或者如果您使用的是 cloudformation,则它如下所示:

Listener80:
  Type: AWS::ElasticLoadBalancingV2::Listener
  Properties:
    DefaultActions:
      - RedirectConfig:
          Port: 443
          Protocol: HTTPS
          StatusCode: HTTP_301
        Type: redirect
    LoadBalancerArn: !Ref ALB
    Port: 80
    Protocol: HTTP
Run Code Online (Sandbox Code Playgroud)

监听器配置如下:

重定向侦听器 - 控制台