

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置 Lightsail 实例以实现负载平衡
<a name="configure-lightsail-instances-for-load-balancing"></a>

在将实例附加到 Amazon Lightsail 负载均衡器之前，您需要评估应用程序的配置。例如，在数据层与应用程序的其余部分分开时，负载均衡器通常具有更好的性能。本主题向您介绍每个 Lightsail 实例，并就是否进行负载平衡（或*水平扩展*）以及如何最好地配置应用程序提出了建议。

## 一般准则：使用数据库的应用程序
<a name="applications-that-use-a-database"></a>

对于使用数据库的 Lightsail 应用程序，我们建议您将数据库实例与应用程序的其余部分分开，这样您就只有一个数据库实例。主要原因是，您希望避免将数据写入到多个数据库中。如果未创建单个数据库实例，数据将写入到用户访问的相应实例上的数据库中。

## WordPress
<a name="configure-wordpress-application-for-lightsail-load-balancer"></a>

**横向扩展？** 是的，适用于 WordPress 博客或网站。

 **使用 Lightsail 负载均衡器之前的配置建议** 
+ 将您的数据库分开，以便在负载均衡器后面运行的每个 WordPress 实例都能从同一个位置存储和检索信息。如果您需要从数据库中获得更高的性能，您可以独立于 Web 服务器复制或更改处理能力或内存。
+ 将您的文件和静态内容卸载到 Lightsail 存储桶。为此，你必须在你的 WordPress 网站上安装 WP Offload Media Lite 插件，并将其配置为连接到你的 Lightsail 存储桶。有关更多信息，请参阅[教程：将 WordPress实例连接到存储桶](amazon-lightsail-connecting-buckets-to-wordpress.md)。

## Node.js
<a name="configure-node-js-application-for-lightsail-load-balancer"></a>

**横向扩展？** 是，但需要注意一些事项。

 **使用 Lightsail 负载均衡器之前的配置建议** 
+ 在 Lightsail 中，Bitnami 打包的 Node.js 堆栈包含 Node.js、Apache、Redis（内存数据库）和 Python。根据部署的应用程序，您可以在几个服务器之间进行负载均衡。不过，您需要配置负载均衡器以在所有 Web 服务器之间均衡流量，并将 Redis 移到另一个服务器。
+ 将 Redis 服务器拆分到另一个服务器，以便与所有实例进行通信。如有必要，请添加一个数据库服务器。
+ Redis 的一个主要使用案例是在本地缓存数据，因此，您不必持续访问中央数据库。建议您启用会话持久性以利用 Redis 中提升的性能。有关更多信息，请参阅[为负载均衡器启用会话持久性](enable-session-stickiness-persistence-or-change-cookie-duration.md)。
+ 您还可能具有共享的 Redis 节点，因此，您也可以共享一个节点，或者通过会话持久性使用每个计算机上的本地缓存。
+ 如果要使用 Apache 部署负载均衡器，请考虑在 Apache 服务器中包含 `mod_proxy_balancer`。

有关更多信息，请参阅[扩展 Node.js 应用程序](https://www.freecodecamp.org/news/scaling-node-js-applications-8492bd8afadc)。

## Magento
<a name="configure-magento-application-for-lightsail-load-balancer"></a>

**横向扩展？** 可以。

 **使用 Lightsail 负载均衡器之前的配置建议** 
+ 你可以使用使用其他组件的 Magento AWS 参考部署，例如亚马逊 RDS 数据库：[Terraform Magento Adobe Commer](https://aws.amazon.com/quickstart/terraform-modules/magento-commerce/) ce 开启。 AWS
+ 请务必启用会话持久性。Magento 使用购物车；对于在多个会话中进行多次访问的客户，这有助于确保客户在使用新会话返回时在购物车中保留商品。有关更多信息，请参阅[为负载均衡器启用会话持久性](enable-session-stickiness-persistence-or-change-cookie-duration.md)。

## GitLab
<a name="configure-gitlab-application-for-lightsail-load-balancer"></a>

**横向扩展？** 是，但需要注意一些事项。

 **使用 Lightsail 负载均衡器之前的配置建议** 

您必须具备以下各项：
+ Redis 节点正在运行并且可以使用
+ 共享的网络存储服务器 (NFS)
+ 应用程序的集中数据库（MySQL 或 PostgreSQL）。请参阅上面的数据库一般准则。

有关更多信息，请参阅*GitLab*网站上的[高可用性](https://docs.gitlab.com/ee/administration/reference_architectures/#high-availability-ha)。

**注意**  
上面提到的共享网络存储服务器 (NFS) 目前在 GitLab 蓝图中不可用。

## Drupal
<a name="configure-drupal-application-for-lightsail-load-balancer"></a>

**横向扩展？** 可以。Drupal 提供了正式文档以说明如何横向扩展应用程序：[服务器扩展](https://www.drupal.org/docs/managing-site-performance-and-scalability/server-scaling)。

 **使用 Lightsail 负载均衡器之前的配置建议** 

您必须设置一个 Drupal 模块以在不同实例之间同步文件。Drupal 网站提供了一些模块，但它们可能更适用于原型而不是生产使用。

使用允许在 Amazon S3 中存储文件的模块。这会提供一个集中位置以存储您的文件，而不是在每个目标实例上保留单独的副本。这样，如果您编辑文件，则会从集中的存储中获取更新并且用户看到相同的文件，而无论他们访问哪个实例。
+  [Amazon S3 文件系统](https://www.drupal.org/project/s3fs) 
+  [内容同步](https://www.drupal.org/project/content_sync) 

有关更多信息，请参阅[横向扩展以及在云中扩展 Drupal](https://www.slideshare.net/burgerboydaddy/scaling-drupal-horizontally-and-in-cloud)。

## LAMP 堆栈
<a name="configure-lamp-application-for-lightsail-load-balancer"></a>

**横向扩展？** 可以。

 **使用 Lightsail 负载均衡器之前的配置建议** 
+ 您应该在单独的实例上创建一个数据库。负载均衡器后面的所有实例应指向该单独数据库实例，因此，它们在相同的位置中存储和检索信息。
+ 根据您要部署的应用程序，考虑如何共享文件系统（NFS、Lightsail 块存储磁盘或 Amazon S3 存储）。

## MEAN 堆栈
<a name="configure-mean-application-for-lightsail-load-balancer"></a>

**横向扩展？** 可以。

 **使用 Lightsail 负载均衡器之前的配置建议** 

将 MongoDB 移至另一台计算机并配置一种机制以在 Lightsail 实例之间共享根文档。

## Redmine
<a name="configure-redmine-application-for-lightsail-load-balancer"></a>

**横向扩展？** 可以。

 **使用 Lightsail 负载均衡器之前的配置建议** 
+ 获取 [Redmine\_S3 插件](http://www.redmine.org/plugins/redmine_s3)以在 Amazon S3 上存储附件，而不是在本地文件系统中存储。
+ 将数据库拆分到不同的实例中。

## Nginx
<a name="configure-nginx-application-for-lightsail-load-balancer"></a>

**横向扩展？** 可以。

你可以让一个或多个 Lightsail 实例运行 Nginx 并连接到 Lightsail 负载均衡器。有关更多信息，请参阅[使用 NGINX 扩展 Web 应用程序，第 1 部分：负载均衡](https://www.nginx.com/blog/scaling-web-applications-nginx-part-load-balancing/)。

## Joomla\!
<a name="configure-joomla-application-for-lightsail-load-balancer"></a>

**横向扩展？** 是，但需要注意一些事项。

 **使用 Lightsail 负载均衡器之前的配置建议** 

尽管在 Joomla 网站上没有提供正式的文档，但在社群论坛中具有一些讨论内容。某些用户已成功横向扩展 Joomla 实例，这些实例具有使用以下配置的集群：
+ 配置为启用会话持久性的 Lightsail 负载均衡器。有关更多信息，请参阅[为负载均衡器启用会话持久性](enable-session-stickiness-persistence-or-change-cookie-duration.md)。
+ 几个运行 Joomla 的 Lightsail 实例连接到负载均衡器，文档根目录为 Joomla！ 已同步。您可以使用诸如 Rsync 之类的工具来实现此目的，也可以使用 NFS 服务器来同步所有 Lightsail 实例之间的内容，或者使用共享文件。 AWS
+ 为一些数据库服务器配置了复制集群。
+ 在每个 Lightsail 实例中配置的缓存系统相同。有一些有用的扩展，例如[JotCache](https://extensions.joomla.org/extension/jotcache/)。