#!/bin/bash
Download_url_lua=http://www.lua.org/ftp/lua-5.3.5.tar.gz
Download_url_haproxy=https://www.haproxy.org/download/2.2/src/haproxy-2.2.29.tar.gz
Download_dir=/usr/local/src
Haproxy_install_dir=/apps/haproxy
lua_install () {
. /etc/os-release
if [ $ID = ubuntu ];then
apt-get update
apt -y install make gcc openssl openssh-server libssl-dev libpcre3 libpcre3-dev zlib1g-dev libreadline-dev libsystemd-dev
elif [ $ID = centos -O $ID = rocky ];then
yum -y install make gcc gcc-c++ glib-devel pcre pcre-devel openssl openssl-devel systemd-devel libtermcap-devel ncurses-devel libevent-devel eadline-dev
fi
wget ${Download_url_lua} -P ${Download_dir}
cd ${Download_dir}&&tar xf ${Download_url_lua##*/}
cd ${Download_url_lua:23:-7}&&make linux
ln -s ${Download_dir}/${Download_url_lua:23:-7}/src/lua /usr/local/bin
}
haproxy_install () {
groupadd haproxy -g 2023&&useradd haproxy -g haproxy -u 2023
wget ${Download_url_haproxy} -P ${Download_dir}
cd ${Download_dir}&&tar xf ${Download_url_haproxy##*/}
cd ${Download_url_haproxy:41:-7}&&make -j $(nproc) TARGET=linux-glibc USE_OPENSSL=1 USE_ZLIB=1 USE_LUA=1 USE_PCRE=1 USE_SYSTEMD=1 LUA_INC=${Download_dir}/lua-5.3.5/src LUA_LIB=${Download_dir}/lua-5.3.5/src&&make install PREFIX=${Haproxy_install_dir}
mkdir /apps/haproxy/run && mkdir /etc/haproxy
ln -s ${Haproxy_install_dir}/sbin/haproxy /usr/local/sbin
cat>/lib/systemd/system/haproxy.service<<EOF
[Unit]
Description=HAProxy Load Balancer
Documentation=man:haproxy(1)
Documentation=file:/usr/share/doc/haproxy/configuration.txt.gz
After=network-online.target rsyslog.service
Wants=network-online.target
[Service]
EnvironmentFile=-/etc/default/haproxy
EnvironmentFile=-/etc/sysconfig/haproxy
Environment="CONFIG=/etc/haproxy/haproxy.cfg" "PIDFILE=/apps/haproxy/run/haproxy.pid" "EXTRAOPTS=-S /run/haproxy-master.sock"
ExecStartPre=/apps/haproxy/sbin/haproxy -Ws -f \$CONFIG -c -q \$EXTRAOPTS
ExecStart=/apps/haproxy/sbin/haproxy -Ws -f \$CONFIG -p \$PIDFILE $EXTRAOPTS
ExecReload=/apps/haproxy/sbin/haproxy -Ws -f \$CONFIG -c -q \$EXTRAOPTS
ExecReload=/bin/kill -USR2 \$MAINPID
KillMode=mixed
Restart=always
SuccessExitStatus=143
Type=notify
[Install]
WantedBy=multi-user.target
EOF
cat>/etc/haproxy/haproxy.cfg<<EOF
global
log 127.0.0.1 local3 info
chroot /apps/haproxy
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
listen web
bind 0.0.0.0:80
mode http
server 10.0.0.10 10.0.0.10:80 check inter 3s fall 3 rise 5
EOF
chown haproxy. /lib/systemd/system/haproxy.service /etc/haproxy/haproxy.cfg
systemctl start haproxy
}
lua_install
haproxy_install
源码编译haproxy脚本
最新推荐文章于 2024-05-21 21:38:42 发布