[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]