本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置 Lightsail 实例以实现负载平衡
在将实例附加到 Amazon Lightsail 负载均衡器之前,您需要评估应用程序的配置。例如,在数据层与应用程序的其余部分分开时,负载均衡器通常具有更好的性能。本主题向您介绍每个 Lightsail 实例,并就是否进行负载平衡(或水平扩展)以及如何最好地配置应用程序提出了建议。
一般准则:使用数据库的应用程序
对于使用数据库的 Lightsail 应用程序,我们建议您将数据库实例与应用程序的其余部分分开,这样您就只有一个数据库实例。主要原因是,您希望避免将数据写入到多个数据库中。如果未创建单个数据库实例,数据将写入到用户访问的相应实例上的数据库中。
WordPress
横向扩展? 是的,适用于 WordPress 博客或网站。
使用 Lightsail 负载均衡器之前的配置建议
-
将您的数据库分开,以便在负载均衡器后面运行的每个 WordPress 实例都能从同一个位置存储和检索信息。如果您需要从数据库中获得更高的性能,您可以独立于 Web 服务器复制或更改处理能力或内存。
-
将您的文件和静态内容卸载到 Lightsail 存储桶。为此,你必须在你的 WordPress 网站上安装 WP Offload Media Lite 插件,并将其配置为连接到你的 Lightsail 存储桶。有关更多信息,请参阅教程:将 WordPress实例连接到存储桶。
Node.js
横向扩展? 是,但需要注意一些事项。
使用 Lightsail 负载均衡器之前的配置建议
-
在 Lightsail 中,Bitnami 打包的 Node.js 堆栈包含 Node.js、Apache、Redis(内存数据库)和 Python。根据部署的应用程序,您可以在几个服务器之间进行负载均衡。不过,您需要配置负载均衡器以在所有 Web 服务器之间均衡流量,并将 Redis 移到另一个服务器。
-
将 Redis 服务器拆分到另一个服务器,以便与所有实例进行通信。如有必要,请添加一个数据库服务器。
-
Redis 的一个主要使用案例是在本地缓存数据,因此,您不必持续访问中央数据库。建议您启用会话持久性以利用 Redis 中提升的性能。有关更多信息,请参阅为负载均衡器启用会话持久性。
-
您还可能具有共享的 Redis 节点,因此,您也可以共享一个节点,或者通过会话持久性使用每个计算机上的本地缓存。
-
如果要使用 Apache 部署负载均衡器,请考虑在 Apache 服务器中包含
mod_proxy_balancer
。
有关更多信息,请参阅扩展 Node.js 应用程序
Magento
横向扩展? 是。
使用 Lightsail 负载均衡器之前的配置建议
-
你可以使用使用其他组件的 Magento AWS 参考部署,例如亚马逊RDS数据库:Terraform Magento Adobe Commer
ce 开启。 AWS -
请务必启用会话持久性。Magento 使用购物车;对于在多个会话中进行多次访问的客户,这有助于确保客户在使用新会话返回时在购物车中保留商品。有关更多信息,请参阅为负载均衡器启用会话持久性。
GitLab
横向扩展? 是,但需要注意一些事项。
使用 Lightsail 负载均衡器之前的配置建议
您必须具备以下各项:
-
Redis 节点正在运行并且可以使用
-
共享网络存储服务器 (NFS)
-
应用程序的集中式数据库(“我的” SQL 或 “Postgre”SQL)。请参阅上面的数据库一般准则。
有关更多信息,请参阅GitLab网站上的高可用性
注意
上面提到的共享网络存储服务器 (NFS) 目前在 GitLab 蓝图中不可用。
Drupal
横向扩展? 是。Drupal 提供了正式文档以说明如何横向扩展应用程序:服务器扩展
使用 Lightsail 负载均衡器之前的配置建议
您必须设置一个 Drupal 模块以在不同实例之间同步文件。Drupal 网站提供了一些模块,但它们可能更适用于原型而不是生产使用。
使用允许在 Amazon S3 中存储文件的模块。这会提供一个集中位置以存储您的文件,而不是在每个目标实例上保留单独的副本。这样,如果您编辑文件,则会从集中的存储中获取更新并且用户看到相同的文件,而无论他们访问哪个实例。
有关更多信息,请参阅 横向扩展以及在云中扩展 Drupal
LAMP堆栈
横向扩展? 是。
使用 Lightsail 负载均衡器之前的配置建议
-
您应该在单独的实例上创建一个数据库。负载均衡器后面的所有实例应指向该单独数据库实例,因此,它们在相同的位置中存储和检索信息。
-
根据您要部署的应用程序,考虑如何共享文件系统(NFSLightsail 块存储磁盘或 Amazon S3 存储)。
MEAN堆栈
横向扩展? 是。
使用 Lightsail 负载均衡器之前的配置建议
将 MongoDB 移到另一台计算机上,然后配置一种机制以在 Lightsail 实例之间共享根文档。
Redmine
横向扩展? 是。
使用 Lightsail 负载均衡器之前的配置建议
-
获取 Redmine_S3 插件
以在 Amazon S3 上存储附件,而不是在本地文件系统中存储。 -
将数据库拆分到不同的实例中。
Nginx
横向扩展? 是。
你可以让一个或多个 Lightsail 实例运行 Nginx 并连接到 Lightsail 负载均衡器。有关更多信息,请参阅使用扩展 Web 应用程序NGINX,第 1 部分:负载平衡
Joomla!
横向扩展? 是,但需要注意一些事项。
使用 Lightsail 负载均衡器之前的配置建议
尽管在 Joomla 网站上没有提供正式的文档,但在社群论坛中具有一些讨论内容。某些用户已成功横向扩展 Joomla 实例,这些实例具有使用以下配置的集群:
-
配置为启用会话持久性的 Lightsail 负载均衡器。有关更多信息,请参阅为负载均衡器启用会话持久性。
-
几个运行 Joomla 的 Lightsail 实例连接到负载均衡器,文档根目录为 Joomla! 已同步。您可以使用诸如 Rsync 之类的工具来实现此目的,使用NFS服务器负责在所有 Lightsail 实例之间同步内容,或者使用共享文件。 AWS
-
为一些数据库服务器配置了复制集群。
-
在每个 Lightsail 实例中配置的缓存系统相同。有一些有用的扩展,例如JotCache
。