相关疑难解决方法(0)

如何使用Digital Ocean DNS和Nginx设置全局负载平衡?

更新:请参阅我在下面提供的答案,了解我最终在AWS上设置的解决方案.

我目前正在尝试使用有关如何在Digital Ocean上为我的应用服务器最佳实现全局负载平衡层的方法,还有一些我尚未整理的部分.

目标

通过将所有连接路由到SFO,NYC,LON和最终新加坡最近的"服务器集群",为我的用户提供高可用性服务.

另外,我最终希望通过编写一个可以监视,扩展和修复系统上任何服务器的守护程序来自动维护它.或者我将结合各种服务来实现相同的自动化目标.首先,我需要弄清楚如何手动完成.

堆栈

  1. Ubuntu 14.04
  2. Nginx 1.4.6
  3. 的node.js
  4. 来自Compose.io的 MongoDB (原名MongoHQ)

全球域名细分

一旦我完成了所有工作,我的域名将如下所示:

**GLOBAL**
global-balancing-1.myapp.com
global-balancing-2.myapp.com
global-balancing-3.myapp.com

**NYC**
nyc-load-balancing-1.myapp.com
nyc-load-balancing-2.myapp.com
nyc-load-balancing-3.myapp.com

nyc-app-1.myapp.com
nyc-app-2.myapp.com
nyc-app-3.myapp.com

nyc-api-1.myapp.com
nyc-api-2.myapp.com
nyc-api-3.myapp.com

**SFO**
sfo-load-balancing-1.myapp.com
sfo-load-balancing-2.myapp.com
sfo-load-balancing-3.myapp.com

sfo-app-1.myapp.com
sfo-app-2.myapp.com
sfo-app-3.myapp.com

sfo-api-1.myapp.com
sfo-api-2.myapp.com
sfo-api-3.myapp.com

**LON**
lon-load-balancing-1.myapp.com
lon-load-balancing-2.myapp.com
lon-load-balancing-3.myapp.com

lon-app-1.myapp.com
lon-app-2.myapp.com
lon-app-3.myapp.com

lon-api-1.myapp.com
lon-api-2.myapp.com
lon-api-3.myapp.com
Run Code Online (Sandbox Code Playgroud)

然后,如果有任何给定层上的任何应变,在任何给定的区域,我就可以旋转了一个新的液滴助阵:nyc-app-4.myapp.com,lon-load-balancing-5.myapp.com,等...

现行工作方法

  • (最少)三个global-balancing服务器接收所有流量.这些服务器是$geoip_city_continent_code平衡的,如本文(坦率地说令人困惑)文章所示:如何配置DNS循环负载平衡.

  • 使用Nginx GeoIP模块MaxMind GeoIP数据 ,任何给定请求的来源都将确定为 global-balancing.

  • 所述load-balancing然后层将请求路由到nyc-load-balancing-1所述服务器上 …

dns global load-balancing nginx digital-ocean

28
推荐指数
2
解决办法
1万
查看次数

标签 统计

digital-ocean ×1

dns ×1

global ×1

load-balancing ×1

nginx ×1