标签归档:haproxy

编译安装HaProxy 2024-10-25

前缀、文档修改记录

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

Donate
云乞讨