编译安装haproxy

发布时间 2023-10-07 15:24:16作者: 小糊涂90

 

#由于CentOS7 之前版本自带的lua版本比较低并不符合HAProxy要求的lua最低版本(5.3)的要求,因此需要编译安装较新版本的lua环境,然后才能编译安装HAProxy
[root@localhost ~]#lua -v
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
[root@localhost ~]#yum install -y gcc readline-devel
[root@localhost ~]#wget http://www.lua.org/ftp/lua-5.3.5.tar.gz
[root@localhost ~]#tar xvf lua-5.3.5.tar.gz -C /usr/local/src
[root@localhost ~]#cd /usr/local/src/lua-5.3.5
[root@localhost lua-5.3.5]# make linux test
[root@localhost lua-5.3.5]# src/lua -v
Lua 5.3.5 Copyright (C) 1994-2018 Lua.org, PUC-Rio

#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以上版本编译参数:
[root@localhost ~]# yum -y install gcc openssl-devel pcre-devel systemd-devel
[root@localhost ~]# wget https://src.fedoraproject.org/repo/pkgs/haproxy/haproxy-2.1.3.tar.gz/sha512/4728c1177b2bba69465cbc56b1ed73a1b2d36891ba2d94d29bb49714ad98ccfac4b52947735aded211f0cd8070002f5406ddd77cabd2f8230b00438189dd7a60/haproxy-2.1.3.tar.gz
[root@localhost ~]# tar xvf haproxy-2.1.3.tar.gz -C /usr/local/src
[root@localhost ~]# cd /usr/local/src/haproxy-2.1.3/
[root@localhost haproxy-2.1.3]# 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/
[root@localhost haproxy-2.1.3]# make install PREFIX=/apps/haproxy
[root@localhost haproxy-2.1.3]# ln -s /apps/haproxy/sbin/haproxy /usr/sbin/
[root@localhost haproxy-2.1.3]# haproxy -v
[root@localhost haproxy-2.1.3]# haproxy -vv
#创建service文件
[root@localhost haproxy-2.1.3]# vim /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target
[Service]
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
#查看配置文件范例
[root@localhost ~]#tree /usr/local/src/haproxy-2.1.3/examples/
#自定义配置文件
[root@localhost haproxy-2.1.3]# vim /etc/haproxy/haproxy.cfg
global
maxconn 100000
chroot /apps/haproxy
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
#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
pidfile /var/lib/haproxy/haproxy.pid
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 /haproxy-status
stats auth haadmin:123456

listen web_port
bind 10.0.0.152:80
mode http
log global
server web1 127.0.0.1:8080 check inter 3000 fall 2 rise 5

[root@localhost haproxy-2.1.3]# mkdir /var/lib/haproxy
[root@localhost haproxy-2.1.3]# chown -R 99.99 /var/lib/haproxy/
[root@localhost haproxy-2.1.3]# useradd -r -s /sbin/nologin -d /var/lib/haproxy haproxy
[root@localhost haproxy-2.1.3]# systemctl enable --now haproxy
Created symlink from /etc/systemd/system/multi-user.target.wants/haproxy.service to /usr/lib/systemd/system/haproxy.service.
[root@localhost haproxy-2.1.3]# systemctl enable --now haproxy
Created symlink from /etc/systemd/system/multi-user.target.wants/haproxy.service to /usr/lib/systemd/system/haproxy.service.
[root@localhost haproxy-2.1.3]# systemctl status haproxy
● haproxy.service - HAProxy Load Balancer
Loaded: loaded (/usr/lib/systemd/system/haproxy.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2021-12-01 10:00:07 CST; 20s ago
Process: 4248 ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q (code=exited, status=0/SUCCESS)
Main PID: 4250 (haproxy)
CGroup: /system.slice/haproxy.service
├─4250 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy...
└─4252 /usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy...

Dec 01 10:00:07 localhost.localdomain systemd[1]: Starting HAProxy Load Balancer...
Dec 01 10:00:07 localhost.localdomain systemd[1]: Started HAProxy Load Balancer.
Dec 01 10:00:07 localhost.localdomain haproxy[4250]: [NOTICE] 334/100007 (4250) : New ...d
Dec 01 10:00:07 localhost.localdomain haproxy[4250]: [WARNING] 334/100007 (4252) : Ser....
Dec 01 10:00:07 localhost.localdomain haproxy[4250]: [ALERT] 334/100007 (4252) : proxy...!
Hint: Some lines were ellipsized, use -l to show in full.

#浏览器访问http://10.0.0.152:9999/haproxy-status。输入账号密码haadmin/123456
[root@localhost haproxy-2.1.3]# curl http://haadmin:123456@10.0.0.152:9999/haproxy-status