冗余/地理优化的网络托管解决方案的想法

冗余/地理优化的网络托管解决方案的想法

我需要设置一个具有以下要求的网站托管解决方案:

  1. 没有单点故障。
  2. 能够处理合理的DDOS攻击(非流量饱和类型)
  3. 服务器位于地理位置重要的区域
  4. 地理优化(如果用户在英国,他们将从最近的服务器获得服务)
  5. 开源/低成本解决方案
  6. 极少的维护

如果诸如亚马逊云托管等解决方案尚不存在,您将如何以最低限度(约 500-750 美元/月)的预算并由一个人来管理来实现这一目标?

我所需要的只是一般的概述,只要您输入重要的关键字等,我就可以通过 Google 找到最终的设置。

答案1

在您的需求描述中,您确实提到了“高流量或大量数据复制”......如果是这样的话,那就获取十几个 vps,分散在世界各地,并在每个节点上设置 nginx 和 php/fpm 或 python,然后做穷人的负载平衡(一个 dns 记录,例如“www”,解析为所有 12 个 IP。)

然后使用 pki、rsync 和 cron 确保每小时所有文档根都相同。

如果您正确设置了 rsync cron,则无需“master”文档根即可执行此操作,因此对任何一个文档根的更改都会在一小时内传播到所有十二个文档根。

对于 mysql,你需要一个位置来运行主服务器,有 11 个从服务器,或者如果你想要更高级一点,你可以运行有 12 个读/写节点(加上命令控制箱)的 galera 集群

另外,你没有提到 memcache 或 redis,但也有办法做到这一点.....基本上它归结为每个 vps 节点的强大程度(昂贵程度)(因为你乘以了~12)

编辑:

地理优化(如果用户在英国,他们将从最近的服务器获得服务)

有几个 DNS 服务提供商可以做到这一点。单个名称有 12 个分辨率,提供商将返回地理位置最接近的分辨率.... 请查看 ulradns 或 easydns.... 我还使用过一个,效果很好,但现在我记不起来了......

能够处理合理的DDOS攻击(非流量饱和类型)

最简单的方法是利用主机级别的 iptables 来保留黑名单并限制传入连接

答案2

这绝对是可能的,尽管金钱因素取决于您收到的流量。我曾经计算过,以不到 100 美元的价格获得具有 v-servers 的高可用性解决方案是完全有可能的。

关于你的列表,我只想说几点:

  1. 良好的集群没有单点故障
  2. 在应用服务器前使用具有速率限制或后端保护功能的代理
  3. 有很多提供商可以让您选择目标服务器位置。或者您只是使用不同的本地提供商(通常更便宜,但更难维护)
  4. 流行语:“地理负载平衡”和“地理 DNS”
  5. Web 服务器、文件系统、代理 - 至少有一个非常好的 OSS
  6. 流行词:“自动化软件”和“配置管理软件”

相关内容