前缀、文档修改记录
20241025 初始化编辑此文章,完稿,文章中的最新稳定版本,为书写此文时间的v3.0.5 20241119 更新到v3.0.6版本
章节1、需求描述
在Debian/Ubuntu系列系统上,编译安装最新稳定版本的haproxy version v3.0.X,该版本为LTS,支持到2029年Q2季度。
地址: http://git.haproxy.org/git/haproxy-3.0.git/
下载地址: https://www.haproxy.org/download/3.0/src/haproxy-3.0.6.tar.gz
章节2、编译步骤
实测通过,用的Ubuntu 20.04.2 LTS、Debian 12系统环境,建一个 src目录,供放置软件源代码压缩包
mkdir -p /root/src/ cd /root/src/ wget https://www.haproxy.org/download/3.0/src/haproxy-3.0.6.tar.gz
如果是内网环境,使用任意工具,把本地的haproxy-3.0.6.tar.gz文件传输到服务器的目录 /root/src/haproxy-3.0.6.tar.gz
安装必要的依赖
apt update apt install -y gcc make build-essential libpcre3-dev libssl-dev zlib1g-dev libsystemd-dev
解压源代码的压缩包
cd /root/src/ tar -zxvf haproxy-3.0.6.tar.gz cd haproxy-3.0.6/
编译安装
// 编译 make TARGET=linux-glibc USE_SYSTEMD=1 USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE=1 编译参数选项说明: TARGET=linux-glibc:指定目标平台。 USE_OPENSSL=1:开启 SSL 支持。 USE_ZLIB=1:开启 zlib 支持,用于压缩响应数据。 USE_PCRE=1:启用 PCRE 库支持正则表达式。 USE_TFO=1:可选,启用 TFO 支持,TCP Fast Open,适合延迟敏感的应用,如负载均衡、Web 服务 // 可选,配套需要开启 /proc/sys/net/ipv4/tcp_fastopen 置于3,开启同时支持客户端和服务器端的TFO USE_LUA=1:可选,启用 Lua 脚本支持 USE_SYSTEMD=1:可选,启用systemd管理 HAProxy服务 // 安装 make install // 执行文件 cp ./examples/haproxy.init /etc/init.d/haproxy chmod +x /etc/init.d/haproxy
查看一下版本信息
/usr/local/sbin/haproxy -v
创建配置相关的目录
mkdir -p /etc/haproxy /var/lib/haproxy /run/haproxy
创建一个空的配置文件,配置文件的内容定义,这个根据你们业务的实际来:
touch /etc/haproxy/haproxy.cfg
写入一个简单的测试内容,轮循2个后端HTTP的WEB
global strict-limits defaults mode http balance random # power-of-two-choices timeout client 60s timeout server 60s timeout connect 1s listen p bind :8000 balance roundrobin server server_web01 47.1.2.101:11111 check inter 8000 rise 2 fall 3 weight 1 maxconn 8192 server server_web02 47.3.4.102:12222 check inter 8000 rise 2 fall 3 weight 1 maxconn 8192
用curl命令,测试一下访问
admin@Desktop:~$ curl http://122.222.100.83:8000 <p>S01</p> admin@Desktop:~$ curl http://122.222.100.83:8000 <p>S02</p> admin@Desktop:~$ curl http://122.222.100.83:8000 <p>S01</p> admin@Desktop:~$ curl http://122.222.100.83:8000 <p>S02</p> admin@Desktop:~$
创建一个haproxy名称的服务文件
cat > /etc/systemd/system/haproxy.service << EOF [Unit] Description=HAProxy Load Balancer After=network.target [Service] ExecStart=/usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg ExecReload=/bin/kill -USR2 \$MAINPID KillMode=mixed Restart=always [Install] WantedBy=multi-user.target EOF
启动停止命令
systemctl daemon-reload systemctl start haproxy # 启动 systemctl stop haproxy # 停止 systemctl enable haproxy # 自动开机启动 systemctl status haproxy # 查看状态
附录1、视频操作演示
附录2、@Dasmz
博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。
对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费
Twitter: Dasmz
Youtube: @DasmzStudio
Telegram: @Dasmz