本文介绍在Debian 10(Buster)操作系统上安装和配置HAProxy的方法,在我的设置中,我将有两个后端Web应用程序,并配置HAProxy以对这些HTTP服务器进行负载均衡。HAProxy是一个开源,可靠的高性能TCP/HTTP负载均衡器和代理服务器,可在Linux、FreeBSD和Solaris上运行,HAProxy是用C语言编写的,它为在多个服务器上运行的基于TCP和HTTP的应用程序提供高可用性负载均衡器。
一、所用的服务器和更新Debian 10系统 1、使用的服务器如下,一共有三台: 第一台192.168.10.10对应HAProxy、第二台192.168.10.11对应Apache Web Server 1、第三台192.168.10.12对应Apache Web Server 2。 2、更新Debian系统 将你使用的所有服务器更新为最新的可用软件包: sudo apt update && sudo apt -y upgrade sudo reboot 参考:在Debian/Ubuntu上配置自动安全更新(无人值守升级)的方法。
二、配置Apache后端服务器 在本演示中,我们将使用Apache Web服务器作为HAProxy前端代理的后端,我将使用以下命令在我的两个Debian 10服务器上安装Apache: 在Server1上: sudo apt update sudo apt -y install apache2 echo "<H1>Hello from Server1</H1>" | sudo tee /var/www/html/index.html 在Server2上: 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并查看响应。 参考:在Debian 10 Linux上安装Apache Web Server的方法。
三、在Debian 10上安装HAProxy 要在Debian 10(Buster)上安装HAProxy,请在终端上运行以下命令: sudo apt -y install haproxy 配置HAProxy: $ sudo nano /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 注:以上地址请自行更改为自己的。至此,操作完成。
相关主题 |