使用 CloudFlare + AWS Application LoadBalancer 获取错误 522
Getting Error 522 with CloudFlare + AWS Application LoadBalancer
从 ALB 访问 80 或 443 端口时出现错误 522 或 521 link 它正在工作(对于 443 浏览器显示警告,即因为 ALB 和 SSL 域不同)
AWS 配置。
- 创建了具有 1 个 public 子网和 1 个私有子网的自定义 VPC
- 已创建 AutoScaling 组
- 已创建负载均衡器(http 和 https 的两个侦听器转发到目标组)和目标组(两个目标指向端口 80 和 443 上的 Ec2 实例以进行健康检查)-> 健康检查正在通过。
- 在私有子网中启动了 Ec2 实例(无 public ip),实例只能由应用程序负载均衡器安全组访问。
Ec2 和 Apache2 配置。
在 apache2 中启用了 SSL
实例开放443端口,ALB安全组访问80(http)和443(https)端口
-
已从 CloudFlare 生成 SSL 证书
SSL/TLS -> 源服务器 -> 生成的 RSA 证书
已将 SSL 证书导入 AWS ACM
已将 ACM SSL 证书附加到 Loadbalancer HTTPS 侦听器
同时创建 AWS ACM SSL 证书并使用 DNS 进行验证以进行测试尝试了两个 ssl 证书 - 没有用
子域和 ALB link
在 CloudFlare 中创建了 DNS CNAME 条目
添加了指向 ALB link 的子域。 (仅尝试使用代理和 DNS)
你的SSL/TLS加密模式是Full
始终使用 HTTPS:开启
在正常 window(浏览器)中访问子域时,它第一次获得 522 并且在隐身模式下它可以工作,但之后就不行了。
向 https://subdomain.domain.com 发出 curl 请求时始终有效
在 Public 子网中创建了完全相同的实例,并 link 使用另一个子域(在 cloudflare 中创建)进行测试 -> 正常工作。
还尝试为端口 443 (HTTPS) 添加单独的目标组 -> 在此目标组中运行状况检查失败,而在端口 80 (http) 的其他目标组中同样有效
我不知道如何解决这个问题,请帮忙!
谢谢你。
请帮忙!
问题是因为面向互联网的负载均衡器在 public 和私有子网中可用,并且由于私有子网,sloudflare 无法连接到私有子网中的 ec2 实例。
负载均衡器子网部分显示 You are creating an internet-facing Load Balancer, but there is no Internet Gateway attached to these subnets you have selected
警告。
解决方案:https://aws.amazon.com/premiumsupport/knowledge-center/public-load-balancer-private-ec2/
从 ALB 访问 80 或 443 端口时出现错误 522 或 521 link 它正在工作(对于 443 浏览器显示警告,即因为 ALB 和 SSL 域不同)
AWS 配置。
- 创建了具有 1 个 public 子网和 1 个私有子网的自定义 VPC
- 已创建 AutoScaling 组
- 已创建负载均衡器(http 和 https 的两个侦听器转发到目标组)和目标组(两个目标指向端口 80 和 443 上的 Ec2 实例以进行健康检查)-> 健康检查正在通过。
- 在私有子网中启动了 Ec2 实例(无 public ip),实例只能由应用程序负载均衡器安全组访问。
Ec2 和 Apache2 配置。
在 apache2 中启用了 SSL
实例开放443端口,ALB安全组访问80(http)和443(https)端口
已从 CloudFlare 生成 SSL 证书
SSL/TLS -> 源服务器 -> 生成的 RSA 证书
已将 SSL 证书导入 AWS ACM
已将 ACM SSL 证书附加到 Loadbalancer HTTPS 侦听器
同时创建 AWS ACM SSL 证书并使用 DNS 进行验证以进行测试尝试了两个 ssl 证书 - 没有用
子域和 ALB link
在 CloudFlare 中创建了 DNS CNAME 条目
添加了指向 ALB link 的子域。 (仅尝试使用代理和 DNS)
你的SSL/TLS加密模式是Full
始终使用 HTTPS:开启
在正常 window(浏览器)中访问子域时,它第一次获得 522 并且在隐身模式下它可以工作,但之后就不行了。
向 https://subdomain.domain.com 发出 curl 请求时始终有效
在 Public 子网中创建了完全相同的实例,并 link 使用另一个子域(在 cloudflare 中创建)进行测试 -> 正常工作。
还尝试为端口 443 (HTTPS) 添加单独的目标组 -> 在此目标组中运行状况检查失败,而在端口 80 (http) 的其他目标组中同样有效
我不知道如何解决这个问题,请帮忙! 谢谢你。 请帮忙!
问题是因为面向互联网的负载均衡器在 public 和私有子网中可用,并且由于私有子网,sloudflare 无法连接到私有子网中的 ec2 实例。
负载均衡器子网部分显示 You are creating an internet-facing Load Balancer, but there is no Internet Gateway attached to these subnets you have selected
警告。
解决方案:https://aws.amazon.com/premiumsupport/knowledge-center/public-load-balancer-private-ec2/