一键安装haproxy


#!/bin/bash
#Date: 2022-04-26
#Author: wengshiqiang

LUA_PKG="lua-5.3.5.tar.gz"
LUA_DIR="lua-5.3.5"
HAPROXY_PKG="haproxy-2.0.15.tar.gz"
HAPROXY_DIR="haproxy-2.0.15"
HAPROXY_VER="2.0.15"

function install_system_package(){
  grep "Ubuntu" /etc/issue &> /dev/null
  if [ $? -eq 0 ];then
    apt update
    apt  install iproute2  ntpdate make  tcpdump telnet traceroute nfs-kernel-server nfs-common  lrzsz tree  openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute  gcc openssh-server lrzsz tree  openssl libssl-dev libpcre3 libpcre3-dev zlib1g-dev ntpdate tcpdump telnet traceroute iotop unzip zip  libreadline-dev libsystemd-dev -y
  fi

  grep "Kernel" /etc/issue &> /dev/null
  if [ $? -eq 0 ];then 
    yum install  vim iotop bc gcc gcc-c++ glibc glibc-devel pcre  pcre-devel openssl  openssl-devel zip unzip zlib-devel  net-tools lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel bc  systemd-devel bash-completion traceroute psmisc -y
  fi
}

function install_lua(){
  cd /usr/local/src  && tar xvf ${LUA_PKG} && cd  ${LUA_DIR} && make linux test
}
function haproxy.service_file(){
   cd /usr/local/src
   cat > haproxy.service <<EOF
   [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

   [Install]
   WantedBy=multi-user.target
EOF

function haproxy.cfg_file(){
   cd /usr/local/src
   cat > haproxy.cfg <<EOF
   global
maxconn 100000
chroot /apps/haproxy
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin
uid 99
gid 99
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 local3 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 0.0.0.0:8899
 mode http
 log global
 server web1  127.0.0.1:8080  check inter 3000 fall 2 rise 5
EOF
 
    
function install_haptroxy(){
  if -d /etc/haproxy;then
    echo "HAProxy 已经安装,即将退出安装过程!"
  else
    mkdir -p /var/lib/haproxy  /etc/haproxy
    cd /usr/local/src  && tar xvf  ${HAPROXY_PKG} && cd ${HAPROXY_DIR} && make  ARCH=x86_64 TARGET=linux-glibc  USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1  USE_SYSTEMD=1  USE_CPU_AFFINITY=1 USE_LUA=1 LUA_INC=/usr/local/src/lua-5.3.5/src/  LUA_LIB=/usr/local/src/lua-5.3.5/src/ PREFIX=/apps/haproxy && make install PREFIX=/apps/haproxy && cp haproxy  /usr/sbin/
    \cp /usr/local/src/haproxy.cfg /etc/haproxy/haproxy.cfg
    \cp /usr/local/src/haproxy.service /lib/systemd/system/haproxy.service 
    systemctl daemon-reload && systemctl restart haproxy && systemctl enable haproxy
    killall -0 haproxy
    if [ $? -eq 0 ];then
      echo "HAProxy ${HAPROXY_VER} 安装成功!" && echo "即将退出安装过程!" && sleep 1
    else 
      echo "HAProxy ${HAPROXY_VER} 安装失败!" && echo "即将退出安装过程!" && sleep 1
    fi
  fi
}

main(){
  install_system_package
  install_lua
  haproxy.service_file
  haproxy.cfg_file
  install_haptroxy
}

main

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值