冗余 Web 服务器

冗余 Web 服务器

我有一台 ubuntu 14.04 服务器,我们将其用作我们的 Web 服务器 (apache)。我们有一个基于 Drupal 构建的公共网站,使用 MySQL DB,并且我们还有一些文件上传到我们的网站并存储在我们的文件系统中。

由于我现在只有一台 Web 服务器,因此我正尝试寻找冗余解决方案。有很多选择,我不确定哪一个最适合我。

我已经看到了rsyncmirrir、apt-mirror、clustering等等。只是不确定哪一个最适合我。

答案1

尝试使用 NGINX 作为两个 Web 服务器的负载均衡器: http://nginx.org/en/docs/http/load_balancing.html

使用 ssh 上的 rsync 保持文档根同步。集群 MySQL 会比较棘手。

答案2

您有几个选择。

这是我的看法,您总共需要 4 台服务器:

  • 现在首先将数据库从服务器上移出,然后移到专用于数据库的服务器上(‘数据库服务器’,此建议中的 #1)。将其迁移到单独的服务器上自己的 MySQL 实例,并配置该服务器的防火墙(和 MySQL)以仅侦听来自两个 Web 服务器的连接。
  • 在 MySQL 服务器上,创建一个有权访问所需数据库/表的用户。 尽量避免向该用户授予 DBA 访问权限,但保持每台服务器的凭据相同,或者为其设置两个 MySQL DB 用户,每台服务器一个
  • 保留您的第一个 Apache 盒子(“Apache 服务器一号”,此建议中的第 2 个)。现在添加另一个。(‘Apache 服务器二’,此建议中的#3)。
  • 将 Web 服务器上的用户访问锁定在极其有限的范围内(仅 SSH 密钥验证、禁止 Root 登录等)。
  • 在两个 Web 服务器上设置 Apache,并配置要同步的文件(无论是否将其作为 git 版本控制,请确保 Apache 上的那些文件和配置相同,如果您对每个服务器使用具有相同访问权限的不同 MySQL 用户,则 DB 用户除外)。
  • 在另一台服务器上配置 NGINX 以实现负载平衡,这将是“网站”最终启动的位置(“负载均衡器”,此建议中的#4),然后它会将负载平衡到 Apache 服务器,透明地传递流量。

唯一的问题是,如果你真的因为负载过重而想要“负载平衡”,首先看看你的网站内容有多动态,如果它不是很动态,而且大部分是静态内容(或不经常变化的 CMS 内容),请考虑使用缓存在您的 Apache 服务器上而不是负载平衡......

相关内容