如何使用Cloudflare在GCP和AWS之间平衡站点?

本文概述

了解如何使用Cloudflare负载平衡器(LB)在AWS(Amazon Web Services)和GCP(Google Cloud Platform)之间分配流量。

大多数Web应用程序需要或在同一数据中心的服务器/服务之间实现负载平衡。

但是, 如果你正在运行的任务关键型应用程序在世界各地一直需要正常运行时间, 那么你就需要一个云负载平衡器。

不仅是正常运行时间, 还可能是其他许多因素。

例如:

  • 主动-被动或主动-主动数据中心要求
  • 灾难恢复计划
  • 利用多个数据中心来处理来自最近位置的请求
  • 合规

Cloudflare提供本地和全局负载平衡选项, 有助于将流量路由到多个数据中心。

Cloudflare LB的某些功能包括:

  • 运行状况检查是内置的, 因此你可以快速关闭有故障的服务器
  • 运行状况检查失败时触发故障转移
  • 通过将流量路由到最近的服务器来减少延迟
  • DNS级别并支持HTTP(S), TCP和UDP
  • 会话粘性以确保请求发送到同一服务器

你可以通过Cloudflare仪表板或API配置所有内容。

从技术上讲, 以下说明适用于负载均衡任何云平台(如Azure, DigitalOcean, 阿里巴巴等)。但是, 我选择了GCP和AWS进行演示。

如何使用Cloudflare在GCP和AWS之间平衡站点?2

AWS和GCP设置详细信息

我已在GCP和AWS平台中配置了以下服务器。

  • 已安装的Nginx
  • 添加了带有自定义文本的index.html以显示页面正在由相应的服务器提供
  • 启动Nginx和页面可从两台服务器访问
如何使用Cloudflare在GCP和AWS之间平衡站点?4

让我们转到Cloudflare实施LB。

激活Cloudflare负载均衡器

我有一个可用的域(bloggerflare.com), 将用于本实验。

注意:Cloudflare的负载均衡器不是免费的, 起价为每月5美元。

我假设你已经拥有Cloudflare帐户, 如果没有, 你可以按照我在上一篇文章中介绍的方法创建和添加域。

  • 登录到Cloudflare并选择要启用平衡的域
  • 转到流量标签并启用负载平衡
如何使用Cloudflare在GCP和AWS之间平衡站点?6
  • 根据需求配置功能。我正在进行最少的配置。
如何使用Cloudflare在GCP和AWS之间平衡站点?8

如果你希望将请求重定向到最近的位置, 则必须启用地理路由。

  • 确认订阅并启用。
如何使用Cloudflare在GCP和AWS之间平衡站点?10

正如你所看到的, 你可以从每月5美元的价格开始, 两台原始服务器和一分钟的运行状况检查间隔。

基础设施现在负担得起。 5年前, 你能想象$ 5的云负载均衡器吗?

这表明Cloudflare LB已激活并准备配置。

创建Cloudflare LB

确认订阅将花费几秒钟, 然后带你回到”流量”页面。

  • 单击创建负载均衡器
如何使用Cloudflare在GCP和AWS之间平衡站点?12
  • 输入你要在其中设置平衡的域。
  • 如果需要启用会话粘性, 请展开”会话亲和力”并选择”按Cloudflare Cookie”
如何使用Cloudflare在GCP和AWS之间平衡站点?14
  • 输入池名称及其来源(流量应重定向到的服务器)
如何使用Cloudflare在GCP和AWS之间平衡站点?16
  • 接下来, 你可以配置运行状况检查

健康检查必不可少。当运行状况检查失败时, 它将允许Cloudflare停止将流量发送到错误的来源。

  • 如果你的来源正在侦听端口80, 则可以为443端口选择HTTP或https。
如何使用Cloudflare在GCP和AWS之间平衡站点?18

Cloudflare还允许你配置高级运行状况检查设置, 例如:

  • GET或HEAD方法
  • 预期的HTTP状态代码
  • 响应主体中的内容验证
  • 认为健康或不健康之前的尝试次数
  • 标题名称验证

最后, 保存配置并部署

如何使用Cloudflare在GCP和AWS之间平衡站点?20
  • LB将执行健康检查, 并在几秒钟内, 你会看到状态为健康。
如何使用Cloudflare在GCP和AWS之间平衡站点?22

太棒了, 这表明Cloudflare负载平衡器已准备就绪, 可以接受来自世界各地的流量并转发到已配置的原始服务器。

测试负载均衡器

让我们执行一个基本测试, 看看它是否有效。

  • 首先, 尝试访问域。
如何使用Cloudflare在GCP和AWS之间平衡站点?24

太棒了! LB将请求转发到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, 然后再次访问该页面。
如何使用Cloudflare在GCP和AWS之间平衡站点?26
  • 然后你去。请求的页面是从AWS提供的。

我可以看到LB取消了GCP池成员。

如何使用Cloudflare在GCP和AWS之间平衡站点?28

默认情况下, cloudflare IP将显示在Nginx访问日志中, 如果你需要还原客户端IP, 则可以查阅本指南。

实施Cloudflare负载平衡器非常简单, 并且可以在不到15分钟的时间内启动它。

如果你正在寻找多个数据中心或原始服务器之间的高可用性, 请尝试看看它是如何工作的。

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?