如何配置 Apache 负载均衡器

[ad_1]

Apache 负载均衡器可帮助您的网站处理大流量负载,而不会出现任何性能问题。 下面是如何配置 Apache 您网站的负载均衡器。

Apache 负载均衡器配置

下面是配置步骤 Apache 在 Ubuntu/Debian 系统上为您的网站提供负载均衡器。

1.安装需要 Apache 模块

我们需要 4 Apache 要配置的模块 Apache 负载均衡器——mod_proxy、mod_proxy_http、mod_proxy_balancer、mod_lbmethod_byrequests

  • mod_proxy 是主要的代理模块,它重定向请求并允许 Apache 充当后端服务器的网关
  • mod_proxy_http 允许支持代理 HTTP 请求
  • mod_proxy_balancer 和 mod_lbmethod_byrequests 添加负载均衡功能 Apache 网络服务器。

打开终端并运行以下命令来安装先决条件 Apache 模块。

$ sudo a2enmod proxy
$ sudo a2enmod proxy_http
$ sudo a2enmod proxy_balancer
$ sudo a2enmod lbmethod_byrequests

奖金阅读: Apache 反向代理配置

2.重启 Apache 服务器

重新开始 Apache 应用更改的服务器

$ sudo service apache2 restart

3. 设置后端服务器

配置 Apache 负载均衡器,我们将安装 Flask 并设置 2 个服务器作为后端服务器在端口 8080 和端口 8081 上运行。

$ sudo apt-get update
$ sudo apt-get -y install python3-pip
$ sudo pip3 install flask

Flask 带有一个现成的 ~/backend.py 文件,该文件在请求主页时返回“Hello World”。

from flask import Flask
app = Flask(__name__)

@app.route("https://ubiq.co/")
def home():
    return 'Hello world!'

奖励阅读:如何安装和配置 mod_pagespeed

我们将为我们的第二台服务器创建一个副本。

$ sudo cp ~/backend.py ~/backend1.py

打开 backend1.py 并将最后一行中的“Hello World”消息更改为“Hello World 2”

from flask import Flask
app = Flask(__name__)

@app.route("https://ubiq.co/")
def home():
    return 'Hello world 2!'

奖励阅读:如何检查 mod_expires 是否已启用

我们将运行第一个 Flask 服务器

$ FLASK_APP=~/backend.py flask run --port=8080 >/dev/null 2>&1 &

您可以通过运行来测试此服务器 curl 命令

$ curl https://127.0.0.1:8080/

您将看到输出为 你好,世界!

我们将运行第二个烧瓶服务器

$ FLASK_APP=~/backend1.py flask run --port=8081 >/dev/null 2>&1 &

您可以通过运行来测试此服务器 curl 命令

$ curl https://127.0.0.1:8081/

您将看到输出为 你好世界2!

现在我们有 2 个后端服务器准备好处理负载。 我们将在这 2 个服务器之间分配负载。

奖励阅读:如何保护 Apache 在 Debian 10 上使用 Let’s Encrypt

4. 配置 Apache 负载均衡器

我们需要修改 Apache要配置的默认配置文件 Apache 负载均衡器。 打开 Apache 文本编辑器中的配置

$ sudo vi /etc/apache2/sites-available/000-default.conf

将以下行添加到 VirtualHost 标记中 Apache 配置文件。

     <Proxy balancer://mycluster>
       BalancerMember https://127.0.0.1:8080
       BalancerMember https://127.0.0.1:8081
      </Proxy>
      ProxyPreserveHost On
      ProxyPass / balancer://mycluster/
      ProxyPassReverse / balancer://mycluster/

让我们看看这 3 个指令。

  • ProxyPreserveHost 原因 Apache 保留原始主机头并将其传递给后端服务器。
  • ProxyPass 是主要的代理指令,它规定根 (/) 下的所有内容都应定向到服务器的后端集群(我们将其命名为 mycluster)。 如果 Apache 获取/example 的请求,然后它将请求发送到 https://your_backend_server/example
  • ProxyPassReverse 告诉 Apache 修改从后端服务器收到的响应中的响应头。 这在后端服务器返回位置重定向响应的情况下很有用,然后客户端将被重定向到 Apache 代理服务器,而不是后端服务器。
  • 我们在名为 balancer://mycluster 的代理标签中列出了我们的后端服务器。 您可以将其更改为其他任何内容。 在这个代理标签中,我们将每个后端服务器列为 BalancerMember。 所以你的集群的 Proxy 标签可以有一个或多个 BalancerMember
<VirtualHost *:80>
...
   <Proxy balancer://mycluster>
      BalancerMember https://127.0.0.1:8080
      BalancerMember https://127.0.0.1:8081
    </Proxy>
    ProxyPreserveHost On
    ProxyPass / balancer://mycluster/
    ProxyPassReverse / balancer://mycluster/
... 
</VirtualHost>

奖励阅读:如何在中启用 mod_headers Apache

5.重启 Apache 服务器

重新开始 Apache 应用更改的服务器

$ sudo service apache2 restart

希望以上 Apache 负载平衡器配置将帮助您设置 Apache 您网站的负载均衡器。

CodePre 可以在几分钟内轻松可视化数据,并在实时仪表板中进行监控。 今天就试试吧!

[ad_2]

Related Posts