在 Debian 11/Debian 10 上安装和配置 HAProxy
本指南将讨论如何在 Debian 11/Debian 10 上安装和配置 HAProxy 负载均衡器。HAProxy 是一个开源、可靠且高性能的 TCP/HTTP 负载均衡器和代理服务器,可在 Linux、FreeBSD 和 Solaris 上运行。 HAProxy 用 C 语言编写,它为在多个服务器上运行的基于 TCP 和 HTTP 的应用程序提供高可用性负载均衡器。
在我的设置中,我将有两个后端 Web 应用程序,并配置 HAProxy 以对这些 HTTP 服务器的流量进行负载平衡。本演示使用的服务器如下所示。
第 1 步:更新 Debian 系统
将您将使用的所有服务器更新为最新的可用软件包。
sudo apt update && sudo apt -y upgrade
sudo reboot
第 2 步:配置 Apache 后端服务器
在本演示中,我们将使用 Apache Web 服务器作为 HAProxy 前端代理的后端。我将使用以下命令在我的两台 Debian 10 服务器上安装 Apache。
在服务器 1 上
sudo apt update
sudo apt -y install apache2
echo "<H1>Hello from Server1</H1>" | sudo tee /var/www/html/index.html
在服务器2上
sudo apt update
sudo apt -y install apache2
echo "<H1>Hello from Server2</H1>" | sudo tee /var/www/html/index.html
您可以尝试访问 Server1 和 Server2 Web URL 并查看响应。
步骤 3:在 Debian 11/Debian 10 上安装 HAProxy
要在 Debian 11/Debian 10 上安装 HAProxy,请在终端上运行以下命令。
sudo apt -y install haproxy
配置 HAProxy。
$ sudo vim /etc/haproxy/haproxy.cfg
# Add to the end
# Define frontend
frontend apache_front
# Frontend listen port - 80
bind *:80
# Set the default backend
default_backend apache_backend_servers
# Enable send X-Forwarded-For header
option forwardfor
# Define backend
backend apache_backend_servers
# Use roundrobin to balance traffic
balance roundrobin
# Define the backend servers
server backend01 192.168.10.11:80 check
server backend02 192.168.10.12:80 check
重启haproxy服务
sudo systemctl restart haproxy
验证配置是否正常工作以访问前端 HAProxy 服务器。
再次重新加载页面,您应该会收到来自 server2 的响应。
对于 TCP 后端,您的配置将如下所示。
frontend rserve_frontend
bind *:80
mode tcp
option tcplog
timeout client 1m
default_backend rserve_backend
backend rserve_backend
mode tcp
option tcplog
option log-health-checks
option redispatch
log global
balance roundrobin
timeout connect 10s
timeout server 1m
server rserve1 <rserve hostname1>:6311 check
server rserve2 <rserve hostname2>:6311 check
server rserve2 <rserve hostname3>:6311 check
配置 SSL
结合证书和私钥。
cat fullchain.pem privkey.pem > haproxy.pem
然后配置 HAProxy 以在前端使用 SSL 证书。
frontend apache-frontend
bind *:80
bind *:443 ssl crt /etc/letsencrypt/live/webapp.computingforgeeks.com/haproxy.pem
阅读有关 HAProxy 文档的更多信息。
类似指南:
- 如何从 Web 界面管理 HAProxy 服务器
- Ubuntu 18.04/CentOS 7 上使用 HAProxy 的 Galera 集群高可用性
- 如何使用 HAProxy 在 Ubuntu 18.04 上设置 MariaDB Galera 集群
- Linux 上的安全 HAProxy 入门