在 3 个 VPS 之间分配所有服务

在 3 个 VPS 之间分配所有服务

我刚刚租了 3 台 vps 服务器,配置如下:
4GB RAM,
150GB 硬盘,
2 个 CPU,
6 个 ip 地址

所以我们有 vps1、vps2 和 vps3,我正在考虑
像这样分配服务:
VPS1 - 前端
+ DNS 服务器
+ MySql 服务器
+ NFS(在 vps2 和 vps3 之间共享文件)

VPS2、VPS3 - 应用服务器
+ PHP
+ Apache
+ Lighttpd(静态文件)
+ Postfix
+ Dovecot

vps1 拥有应用程序的所有文件、php 文件、js 文件、css 文件、html 文件等等。VPS2 和 VPS3 通过网络安装这些文件。

vps1 在端口 (80,110,25) 上从互联网接收请求,将请求传递给 VPS2 或 VPS3,如果需要数据,可以连接到 VPS1 中的 mysql 服务器

在 VPS1 上安装 HAProxy 来平衡 VPS2 和 VPS3 上的负载是个好主意吗?
有人能给我建议更好的设置、提示或想法吗?

谢谢

答案1

我们使用 haproxy 来做负载平衡。

你有几个明显的失败点

1)如果 vps1 出现故障,haproxy 和所有网络挂载都会中断。并且 mysql 也会中断……

更好的设置是:

  1. 在所有服务器上运行 keepalived,并在三者之间共享虚拟 ip
  2. 在所有服务器上运行 haproxy,并让它监听虚拟 ip
  3. 运行 mysql-cluster(所有服务器上的数据/存储节点/vps1 上的管理)
  4. 跳过 NFS 并使用 rsync 或类似方法将文件镜像到所有服务器。
  5. 每个服务器都可以运行 posftfix

我没有使用过 dovecot(实际上我只用过不好的......)但我相信它应该在虚拟 ip 和 haproxy 后面工作。

通过此设置,您可以丢失任意 1 台服务器但保持所有服务正常运行。

如果丢失 2 个,mysql-cluster 将会受到影响,但其他一切都将正常工作。

答案2

大多数 VPS 提供商还提供负载平衡、SSL 卸载和 DNS 即服务。除非您的需求特殊,否则最好先尝试使用他们的服务,用自己开发的解决方案替换它们只会让事情变得复杂。

正如 lVlint67 所述,出站电子邮件是一项简单的服务,可以在所有实例上安装。

这样就只剩下 webapp、dovecot 和 mysql 需要在后台处理了。当然,你的需求可能需要动态修改 DNS、dovecot 和 smtp,所以 YMMV。

相关内容