在 RHEL 8 上安装 Apache Web 服务器

在本文中,我们需要两台 Web 服务器和一台 HAProxy 负载平衡服务器。
但是,我们没有三台机器,因此,我们在同一个 HAProxy 服务器上配置两个 Apache 虚拟主机,然后为它们设置 HTTP 负载均衡器。

使用 dnf 命令在 RHEL 服务器上安装 Apache Web 服务器。

# dnf install -y @httpd

为 Apache 虚拟主机创建“文档根”目录。

# mkdir /var/www/host-{80,8080}

为 Apache 虚拟主机生成 index.html(默认网页)。

# vi /var/www/host-80/index.html

其中添加以下 HTML 代码。

<HTML>
<HEAD>
<TITLE>TEST PAGE AT HOST-80</TITLE>
<BODY>
<H1>TEST PAGE AT VIRTUAL HOST RUNNING AT PORT 80</H1>
</BODY>
</HTML>

同样,对于第二个虚拟主机。

# vi /var/www/host-8080/index.html

添加以下 HTML 代码。

<HTML>
<HEAD>
<TITLE>TEST PAGE AT HOST-8080</TITLE>
<BODY>
<H1>TEST PAGE AT VIRTUAL HOST RUNNING AT PORT 8080</H1>
</BODY>
</HTML>

在 Apache Web 服务器中添加虚拟主机配置。

# vi /etc/httpd/conf.d/test.conf

在此文件中添加以下指令。

Listen 80
Listen 8080
<VirtualHost 192.168.1.238:80>
    ServerName haproxy-01.onitroad.com
    DocumentRoot "/var/www/host-80"
</VirtualHost>
<VirtualHost 192.168.1.238:8080>
    ServerName haproxy-01.onitroad.com
    DocumentRoot "/var/www/host-8080"
</VirtualHost>

Apache Web 服务器使用端口 80/tcp 和 8080/tcp ,因此,我们必须在 Linux 防火墙中允许这些网络端口。

# firewall-cmd --permanent --add-port={80,8080}/tcp
success
# firewall-cmd --reload
success

启用并启动 Apache Web 服务器。

# systemctl enable --now httpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service -> /usr/lib/systemd/system/httpd.service.

使用 curl 命令验证 Apache 虚拟主机。

# curl http://haproxy-01.onitroad.com:80
<HTML>
<HEAD>
<TITLE>TEST PAGE AT HOST-80</TITLE>
<BODY>
<H1>TEST PAGE AT VIRTUAL HOST RUNNING AT PORT 80</H1>
</BODY>
</HTML>
# curl http://haproxy-01.onitroad.com:8080
<HTML>
<HEAD>
<TITLE>TEST PAGE AT HOST-8080</TITLE>
<BODY>
<H1>TEST PAGE AT VIRTUAL HOST RUNNING AT PORT 8080</H1>
</BODY>
</HTML>

如果我们得到上述输出,则 Apache 虚拟主机配置成功。

在 RHEL 8 上安装 HAProxy 负载均衡器

我们可以使用 dnf 命令从 Red Hat 订阅管理存储库安装 HAProxy。

# dnf install -y haproxy
Updating Subscription Management repositories.

HAProxy 负载均衡器安装在 Linux 服务器上。

在 CentOS/RHEL 8 上安装 HAProxy 负载均衡器

HAProxy 是一个可靠、高性能的 TCP/HTTP 负载均衡器。
HAProxy 是免费的开源软件,可为基于 TCP 和 HTTP 的应用程序提供高可用性负载平衡器和代理服务器,将请求传播到多个服务器。

在这里,我们将学习如何在 RHEL 8 上安装 HAProxy 负载均衡器。

之路教程 https://onitr oad .com

在 RHEL 8 中配置 HAProxy 日志

现在我们需要配置 HAProxy 日志。
此日志对于 Linux 服务器上的 HAProxy 故障排除非常有帮助。

在 vim 文本编辑器中打开 rsyslog 配置文件。

# vi /etc/rsyslog.conf

找到并取消注释此文件中的以下两行。

module(load="imudp") # needs to be done just once
input(type="imudp" port="514")

创建用于设置 HAProxy 日志文件位置的 rsyslog 配置文件。

# vi /etc/rsyslog.d/haproxy.conf

在此文件中添加以下指令。

# HAProxy Logging
local2.*        /var/log/haproxy.log

重新启动 rsyslog 服务以加载更改。

# systemctl restart rsyslog.service

在 HAProxy 中配置 HTTP 负载均衡器

在 vim 文本编辑器中打开 HAProxy 配置文件。

# vi /etc/haproxy/haproxy.cfg

在此文件的末尾添加以下指令。

# HAProxy Load Balancer for Apache Web Server
frontend http-loadbalancer
 bind 192.168.1.238:9000
 default_backend web-servers
backend web-servers
 mode http
 balance roundrobin
 stats enable
 stats auth onitroad:JackLi@1234
 server webserver-01 192.168.1.238:80 check
 server webserver-02 192.168.1.238:8080 check

在上面的配置中,我们设置了一个名为 http-loadbalancer 的 HAProxy 负载均衡器,运行在网络端口 9000/tcp 上。

我们的 HTTP 负载平衡器将在两个 Web 服务器之间执行循环负载平衡。
例如:webserver-01 和 webserver-02 。

在这里,我们使用了 Apache 虚拟主机,因此我们使用不同端口的相同 IP 地址。
如果在不同的机器上运行服务,我们还可以使用 Web 服务器的 IP 地址或者主机名。

我们必须在 Linux 防火墙中允许服务端口 9000/tcp,才能通过计算机网络访问它。

# firewall-cmd --permanent --add-port=9000/tcp
success
# firewall-cmd --reload
success

确保我们已正确完成上述配置。
此后,启用并启动 HAProxy 服务。

# systemctl enable --now haproxy.service
Created symlink /etc/systemd/system/multi-user.target.wants/haproxy.service -> /usr/lib/systemd/system/haproxy.service.

执行 curl 命令多次访问 HAProxy 负载均衡器。

# curl http://haproxy-01.onitroad.com:9000
<HTML>
<HEAD>
<TITLE>TEST PAGE AT HOST-80</TITLE>
<BODY>
<H1>TEST PAGE AT VIRTUAL HOST RUNNING AT PORT 80</H1>
</BODY>
</HTML>
# curl http://haproxy-01.onitroad.com:9000
<HTML>
<HEAD>
<TITLE>TEST PAGE AT HOST-8080</TITLE>
<BODY>
<H1>TEST PAGE AT VIRTUAL HOST RUNNING AT PORT 8080</H1>
</BODY>
</HTML>
# curl http://haproxy-01.onitroad.com:9000
<HTML>
<HEAD>
<TITLE>TEST PAGE AT HOST-80</TITLE>
<BODY>
<H1>TEST PAGE AT VIRTUAL HOST RUNNING AT PORT 80</H1>
</BODY>
</HTML>

我们可以看到 HAProxy 负载平衡器以循环方式在两个 Web 服务器之间轮换服务请求。

但是,我们可以在 /var/log/haproxy.log 文件中查看 HAProxy 统计信息和日志。
但我们也可以通过网络浏览器查看 Haproxy 集成统计报告。

为此,我们可以在 Web 浏览器中打开 http://haproxy-01.onitroad.com:9000/haproxy?stats。

日期:2020-09-17 00:16:38 来源:oir作者:oir