Hetzner 上的负载均衡
Hetzner Cloud 是一家提供广泛服务的云托管提供商。在本指南中,我们将向您展示如何在 Hetzner Cloud 上使用 Coolify 部署负载均衡的应用程序。
介绍
您的应用程序正在增长,您需要对其进行扩展。扩展应用程序最常见的方法之一是使用负载均衡器。负载均衡器将传入的流量分配到多个服务器上,确保没有单个服务器过载。这有助于提高应用程序的性能和可靠性。
在本指南中,我们将向您展示如何在 Hetzner Cloud 上使用 Coolify 部署负载均衡的应用程序。我们将使用两台(或更多)服务器来托管我们的应用程序,并使用负载均衡器来分配传入的流量。我们还将向您展示如何设置数据库服务器(如果需要)。
提示
整个基础设施每月成本约为 ~15€。
要求
- 由 Hetzner Cloud 管理的域名
- Hetzner Cloud 上的 2 台(或更多)服务器
- Hetzner Cloud 上的负载均衡器
- 限制对服务器访问的防火墙规则
- 可选:Hetzner Cloud 上的数据库服务器
步骤
购买服务器
首先,您需要在 Hetzner Cloud 上购买两台(或更多)服务器。您可以根据自己的需求选择服务器类型和位置。确保选择具有足够资源来运行应用程序的服务器。
注意
确保您为服务器创建并附加了私有网络。这将允许您的服务器使用私有网络相互通信。
如果您没有 Hetzner Cloud 账户,可以通过此 推荐链接 注册。
在 Coolify 中添加并验证服务器
购买服务器后,您需要将它们添加到 Coolify 中。您可以通过点击 Coolify 仪表板中的
添加服务器按钮并按照说明操作来完成此操作。Coolify 将自动在您的服务器上安装必要的软件。
可选:部署数据库
最好为您的应用程序使用单独的数据库服务器。这不仅是出于性能原因,也是出于安全原因。此外,这样您可以将多个应用程序连接到一个集中的数据库服务器。
如果您不需要数据库服务器或已经在其他地方托管了数据库,请跳过此步骤。
购买数据库服务器并将其添加到 Coolify 后,在其上部署您首选的数据库类型(MySQL、PostgreSQL 等)。
注意
在本指南中,我们不会使用反向代理。我们将把数据库绑定到服务器的公共 IP 地址。我们将使用防火墙来限制对数据库服务器的访问。
您可以在
服务器选项卡上停止它们,然后切换到无代理类型。确保正确设置
端口映射以允许应用程序服务器连接到数据库服务器。- PostgreSQL:
5432:5432 - MySQL:
3306:3306 - MariaDB:
3306:3306 - MongoDB:
27017:27017
- PostgreSQL:
部署应用程序
现在是时候在应用服务器上部署您的应用程序了。部署应用程序的详细步骤将取决于您要部署的应用程序类型。
使用 Coolify,您可以将多个服务器附加到同一个应用程序。这将允许您在多个服务器上部署应用程序。
注意
在本指南中,我们不会使用反向代理。我们将把应用程序绑定到服务器的公共 IP 地址,因为负载均衡器将处理路由。
您可以在
服务器选项卡上停止它们,然后切换到无代理类型。确保正确设置
端口映射以将应用程序端口转发到服务器的公共 IP 地址。如果您的应用程序使用数据库,请确保更新数据库连接字符串以指向数据库服务器。
提示
Hetzner Cloud 提供私有网络功能,允许您使用私有网络连接服务器。这可以帮助提高应用程序的安全性和性能。
确保在服务器上启用私有网络功能,并在数据库连接字符串中使用它。
通过在浏览器中访问服务器的公共 IP 地址和端口来测试应用程序是否正常工作。
添加并配置负载均衡器
现在是时候添加负载均衡器来分配传入的流量到您的服务器了。
这个负载均衡器将执行以下操作:
- 将传入的流量分配到您的服务器
- 终止 TLS 连接(使您的应用程序通过 HTTPS 安全,并通过 HTTP 将流量转发到您的服务器)
- 对服务器进行健康检查,并将流量路由到健康的服务器
您的应用程序在两台服务器上都运行在
端口 8000上,并且您有一个域名example.com。- 转到 Hetzner Cloud 控制台,点击左侧边栏中的
负载均衡器。 - 点击
创建负载均衡器按钮。 - 选择您的服务器所在的区域。
- 选择您为服务器创建的私有网络。
- 在目标部分选择所有服务器。重要:
(使用私有网络)。 - 在服务中,删除默认服务并添加一个
TLS 终止预定义服务。 - 作为
目标端口输入8000(源端口应为443)。 - 添加您域名的证书。它将使用 Let's Encrypt 为您的域名生成证书。
- 在
健康检查部分,将健康检查端点配置为您的应用程序健康检查端点。(只需返回200 OK的端点)。 - 可选:可以启用粘性会话,这将确保用户在一段时间内始终被路由到同一台服务器,否则,负载均衡器将随机地将流量分配到您的服务器上。
- 选择一个算法。
- 最后,为您的负载均衡器命名并点击
创建并购买。
等待负载均衡器创建并健康。一旦健康,您可以检查应用程序是否可以通过负载均衡器的 IP 地址访问。
设置 DNS
现在是时候将您的域名指向
负载均衡器的 IP 地址了。您可以通过在域名提供商的 DNS 设置中添加A记录来完成此操作。- 转到您的 DNS 设置。
- 添加一个
A记录,域名和负载均衡器的 IP 地址值。 - 保存更改并等待 DNS 更改传播。
DNS 更改传播后,您应该能够使用域名访问您的应用程序。
设置防火墙
Hetzner Cloud 提供防火墙功能,允许您限制对服务器的访问。我们将使用此功能来限制对服务器的访问。
由于负载均衡器通过私有网络与您的服务器通信,我们只需要为公共 IP 地址添加规则。
入站规则包括所有被允许的内容。默认情况下,其他所有内容都被阻止。- 转到 Hetzner Cloud 控制台,点击左侧边栏中的
防火墙。 - 点击
创建防火墙按钮。 - 为您的 IP 地址添加 SSH 访问规则到
入站规则。 - 将您的服务器添加到
应用规则部分。 - 为您的防火墙命名并点击
创建防火墙。
提示
可选:如果需要,您可以添加更多规则以允许访问特定端口或 IP 地址。
- 转到 Hetzner Cloud 控制台,点击左侧边栏中的
