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的主要内容,如果未能解决你的问题,请参考以下文章
centos7(Linux)部署nginx+HAProxy+nfs