Linux编译安装HAProxy最新版本2.4.1

Posted 白-胖-子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux编译安装HAProxy最新版本2.4.1相关的知识,希望对你有一定的参考价值。

HAProxy

  • 高性能反向代理
  • 高性能负载均衡器

包安装HAProxy

Ubuntu

[root@ubuntu1804 ~]#apt-get install software-properties-common
[root@ubuntu1804 ~]#add-apt-repository ppa:vbernat/haproxy-2.0
[root@ubuntu1804 ~]#apt update
[root@ubuntu1804 ~]#apt-cache madison haproxy
#安装指定版本
[root@ubuntu1804 ~]#apt install haproxy=2.0.4-1ppa1~bionic
#或安装最新版
[root@ubuntu1804 ~]#apt-get install haproxy=2.0.\\*
#验证haproxy版本
[root@ubuntu1804 ~]#haproxy -v

CentOS

[root@centos8 ~]#dnf -y install haproxy
[root@centos8 ~]#haproxy -v
HA-Proxy version 1.8.15 2018/12/13
[root@centos7 ~]# yum install haproxy -y
#验证haproxy版本
[root@centos7 ~]# haproxy -v
HA-Proxy version 1.5.18 2016/05/10
Copyright 2000-2016 Willy Tarreau <willy@haproxy.org>

编译安装HAProxy

  • 环境依赖包
    gcc openssl-devel pcre-devel systemd-devel
  • HAProxy 1.8及1.9版本编译参数:
make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 \\
USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/usr/local/haproxy
  • HAProxy 2.0以上版本编译参数:需要指定lua的安装路径
make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 \\
USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_LUA=1 LUA_INC=/usr/local/src/lua-5.3.5/src/ LUA_LIB=/usr/local/src/lua-5.3.5/src/

1. 下载并解压缩

wget http://www.haproxy.org/download/2.4/src/haproxy-2.4.1.tar.gz
#wget 10.0.0.88/src/haproxy-2.4.1.tar.gz
tar xvf haproxy-2.4.1.tar.gz -C /usr/local/src/

2. 安装lua环境

  • HAProxy要求的lua最低版本(5.3)
if [ $(lua -v | awk -F' |[.]' '{print $2}') -lt 5 ];then
  install_lua
elif [ $(lua -v | awk -F'.' '{print $2}') -lt 3 ];then
  install_lua
else
  echo `lua -v` 
fi 
yum install gcc readline-devel
wget http://www.lua.org/ftp/lua-5.4.3.tar.gz
tar zxf lua-5.4.3.tar.gz && cd lua-5.4.3 && make all test
mkdir -pv /apps/lua
cp -a lua-5.4.3/src/* /apps/lua/

3. 安装依赖包

yum -y install gcc openssl-devel pcre-devel systemd-devel \\
# iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common \\
# lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev openssh-server libreadline-dev libsystemd-devstall 

4. 预编译

  • 需要制定lua安装路径
cd /usr/local/src/haproxy-2.4.1/ 
make -j 2 ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 \\
USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_LUA=1 \\
LUA_INC=/apps/lua/ LUA_LIB=/apps/lua/

5. 编译安装

make install PREFIX=/apps/haproxy

ln -s /apps/haproxy/sbin/haproxy /usr/sbin/

6. 准备socket文件目录

mkdir -pv /apps/haproxy/socket/

7. 创建用户并设置用户和目录权限

useradd -r -s /sbin/nologin -d /apps/haproxy haproxy

7. 制作配置文件

  • 默认缺少配置文件,无法启动
  • 创建自定义的配置文件
    mkdir /apps/haproxy/conf
cat > /apps/haproxy/conf/haproxy.cfg <<SUN
global
maxconn 100000
chroot /apps/haproxy
stats socket /apps/haproxy/socket/haproxy.sock mode 600 level admin
pidfile /apps/haproxy/socket/haproxy.pid

#uid 99
#gid 99
user haproxy
group haproxy
daemon
#nbproc 4
#cpu-map 1 0
#cpu-map 2 1
#cpu-map 3 2
#cpu-map 4 3

log 127.0.0.1 local2 info
defaults
option http-keep-alive
option forwardfor
maxconn 100000
mode http
timeout connect 300000ms
timeout client 300000ms
timeout server 300000ms
listen stats
mode http
bind 0.0.0.0:9999
stats enable
log global
stats uri /hasa
stats auth sun:123456
listen web_port
bind 10.0.0.189:80
mode http
log global
server web1 127.0.0.1:8080 check inter 3000 fall 2 rise 5
SUN

8. 创建service文件

cat > /usr/lib/systemd/system/haproxy.service <<SUN
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
[Service]
ExecStartPre=/apps/haproxy/sbin/haproxy -f /apps/haproxy/conf/haproxy.cfg -c -q
ExecStart=/apps/haproxy/sbin/haproxy -Ws -f /apps/haproxy/conf/haproxy.cfg -p /apps/haproxy/socket/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
SUN

9. 启动HAProxy并设为开机自动运行

systemctl daemon-reload
systemctl enable --now haproxy

写个脚本编译安装多开心啊!

#!/bin/bash
#********************************************************************
SRC_DIR=/usr/local/src/
haproxy_URL=http://www.haproxy.org/download/2.4/src/
haproxy_FILE=haproxy-2.4.1
lua_URL=http://www.lua.org/ftp/
lua_FILE=lua-5.4.3
TAR=.tar.gz
haproxy_INSTALL_DIR=/apps/haproxy/
lua_INSTALL_DIR=/apps/lua/
CPUS=`lscpu |awk '/^CPU\\(s\\)/{print $2}'`
#下略…………
  • 反正我写出来了

以上是关于Linux编译安装HAProxy最新版本2.4.1的主要内容,如果未能解决你的问题,请参考以下文章

编译安装HAProxy

centos7(Linux)部署nginx+HAProxy+nfs

运维笔记:Linux(CentOS8)免编译安装mysql5.7.33最新版本

HAProxy-1.8.x版本源码编译

#yyds干货盘点# haproxy配置方法

Linux编译安装keepalive最新版本2.2.2