使用 Cloudflare 负载均衡器在 AWS 和 GCP 之间分配流量
许多网络应用程序需要在同一数据中心内的服务器或服务之间进行负载均衡。然而,对于那些需要在全球范围内保持关键应用程序始终运行的场景,云负载均衡器变得至关重要。
除了保证运行时间外,还有其他几个重要因素需要考虑,例如:
- 主动-被动或主动-主动数据中心配置要求
- 灾难恢复计划
- 利用多个数据中心服务来自最近位置的请求
- 合规性需求
Cloudflare 提供本地和全局负载均衡的解决方案,帮助将流量路由至多个数据中心。
Cloudflare 负载均衡器的一些关键特性包括:
- 内置健康检查,可以快速禁用故障服务器。
- 当健康检查失败时,自动触发故障转移。
- 通过将流量路由到最近的服务器来减少延迟。
- DNS 级别支持,兼容 HTTP(S)、TCP 和 UDP 协议。
- 会话粘性,确保请求到达同一服务器。
您可以通过 Cloudflare 控制面板或 API 来配置所有设置。
虽然以下说明主要针对 GCP 和 AWS,但实际上这些方法适用于任何云平台上的负载均衡,包括 Azure、DigitalOcean 和阿里云等。
AWS 和 GCP 设置详情
我在 GCP 和 AWS 云平台上都预先配置了一台服务器,配置如下:
- 安装了 Nginx。
- 添加了一个带有自定义文本的 index.html 文件,以显示页面来自哪个服务器。
- 启动了 Nginx,确保两个服务器都可以访问页面。
接下来,让我们开始在 Cloudflare 上配置负载均衡器。
激活 Cloudflare 负载均衡器
我将使用一个现有的域名 (bloggerflare.com) 进行本次实验。
请注意,Cloudflare 负载均衡器并非免费服务,其 价格 起价为每月 5 美元。
假设您已经拥有一个 Cloudflare 帐户。如果您没有,可以按照我之前的文章中的说明创建并添加域名。
- 登录 Cloudflare 并选择要启用负载均衡的域名。
- 转到“流量”选项卡并启用负载均衡。
- 根据您的需求配置功能,我在这里使用最小配置。
如果您希望将请求重定向到最近的位置,请启用地理路由。
- 确认订阅并启用负载均衡。
从上图可以看到,最低配置是每月 5 美元,可以使用两台源服务器和一分钟的健康检查间隔。
如今的基础设施非常经济实惠。几年前,您能想象到只需 5 美元即可拥有云负载均衡器吗?
这表明 Cloudflare 负载均衡器已激活并准备好配置。
创建 Cloudflare 负载均衡器
确认订阅后,系统会自动将您重定向回“流量”页面,这个过程大约需要几秒钟。
- 点击“创建负载均衡器”。
- 输入要进行负载均衡的域名。
- 如果需要启用会话粘性,请展开“会话粘性”选项,选择“Cloudflare Cookie”。
- 输入池名称,它代表源服务器(流量将路由到的服务器)。
- 接下来,您可以配置健康检查。
健康检查至关重要。 当健康检查失败时,Cloudflare 会停止向故障源发送流量。
- 如果您的源服务器正在监听 80 端口,您可以为 443 端口选择 HTTP 或 HTTPS。
Cloudflare 还允许您配置高级运行状况检查设置,例如:
- GET 或 HEAD 方法
- 预期的 HTTP 状态代码
- 响应正文中的内容验证
- 服务器被判定为健康或不健康前的尝试次数
- 标头名称验证
最后,保存配置并部署。
- 负载均衡器将执行健康检查,几秒钟后,您将看到状态为健康。
太棒了,这表明 Cloudflare 负载均衡器已经准备好接收来自世界各地的流量,并将其转发到配置的源服务器。
测试负载均衡器
让我们执行一个简单的测试,看看它是否有效。
- 首先,尝试访问域名。
结果令人惊叹!
负载均衡器将请求转发到了 Google Cloud VM 并得到了响应。我可以在 Nginx 日志中看到该请求。
162.158.167.174 - - [19/Dec/2017:10:25:41 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
- 现在,我将在 GCP 上关闭 Nginx 并再次访问该页面。
- 给你。请求的页面由 AWS 提供。
我可以看到负载均衡器已将 GCP 池成员标记为关闭状态。
默认情况下,Cloudflare IP 将显示在 Nginx 访问日志中。如果您需要恢复客户端 IP,请查阅相关指南。
结论
实施 Cloudflare 负载均衡器非常简单快捷,只需 15 分钟即可完成设置。 如果您正在寻找多数据中心或源服务器之间的高可用性,请尝试使用它,了解它的强大之处。
喜欢这篇文章吗? 与大家分享吧!