目前有一个弹性 beanstalk 环境。
我已经转到了 EC2 下的负载均衡器设置,弹性 beanstalk 位于其中。
从那里我选择了唯一的负载均衡器 > 侦听器 > 查看/编辑 80 和 443 端口的规则。
我继续添加主机标头为 www.example.com 的规则
我还添加了一个 动作:重定向https 端口:443 自定义主机、路径、查询:主机是 example.com 选择的重定向是 301。
我继续为 80 位和 443 位听众“添加操作”。
问题是它不起作用,当我去http://www.example.com或https://www.example.com时,它不去https://example.com
答案 0 :(得分:-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
答案 1 :(得分:-1)
official document 说你做对了。所以这不是 ALB 的问题。
我认为您的 EB 配置有问题(或者可能是 @MarkB 在评论中所说的 DNS)。
目前,我只能说,基本上www.example.com与example.com没有任何关系,如果你不配置任何东西。
您的“两个”域(www.example.com
和 example.com
)是否指向由 EB 托管的同一页面?