源码编译haproxy脚本

#!/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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值