使用 HaProxy 制作一个简单的负载均衡器

2023-02-27 08:38:28 浏览数 (1)

在本文中,我将向大家展示如何使用 haProxy 从我通过 express 设置的 servler 制作一个简单的负载均衡器。

我们将有两个文件夹:

  • app:一个简单的后端服务器,使用 express 构建
  • haproxy:将充当负载均衡器的 haProxy 文件夹

第 1 步:使用 Express 创建后端服务器

让我们使用 Express 创建一个简单的后端服务器。为此,我们创建一个名为 app 的文件夹并将其输入。

首先,我们通过说来创建我们的包结构 yarn init。然后我们根据服务器的要求添加快递包:yarn add express。

现在我们创建一个名为 index.js 的文件并添加以下代码:

代码语言:javascript复制
const app = require('express')();
const appid = process.env.APPID || 4000;
app.get('/', (req, res) => res.send(`APP ID: ${appid}`));
app.listen(appid, () => console.log(`listening on ${appid}`));

为了使这个 nodeJS 项目成为 docker 镜像,我们添加了 Dockerfile:

代码语言:javascript复制
FROM node:12
WORKDIR /home/node/app
COPY / /home/node/app
RUN npm install
CMD npm run app

要创建我们的 Docker 镜像,我们运行命令:

代码语言:javascript复制
docker image -t example-app .

第 2 步:安装 HaProxy 结构

什么是 HaProxy?

HAProxy(高可用性代理)是一个负载均衡器任务管理器。它提供免费和安全的服务,例如负载平衡、高可用性和许多服务的代理。

我们为 laod-balancer 创建 haproxy 文件夹,并向其中添加一个名为 haproxy.cfg 的文件:

代码语言:javascript复制
frontend http
    bind *:80
    mode http
    timeout connect 10s
    timeout client 10s
    timeout server 10s
    retries 3
    use_backend all
backend all
    mode http
    server s1 nodeapp1:4001
    server s2 nodeapp2:4002
    server s3 nodeapp3:4003
    server s4 nodeapp4:4004

这里关键字的含义:

  • bind:我们正在运行的端口值
  • mode:输入为 HTTP 或 HTTPs(如果 SSL 可用)。
  • timeout:超时值。如果第一次尝试失败,可以再次尝试。为此,您需要设- 置重试次数。
  • retries:超时时重复多少次的值。
  • use_backend:要使用的后端服务器信息。 在 haproxy 文件夹中,我们添加 Dockerfile 文件以将此结构转换为 docker 镜像。

在 haproxy 文件夹中,我们添加 Dockerfile 文件以将此结构转换为 docker 镜像。

代码语言:javascript复制
FROM haproxy:1.7
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg

0 人点赞