加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

HAproxy-Keepalived一键安装脚本

发布时间:2020-12-15 07:09:28 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 #!/bin/bash##################################haproxy_path=/usr/local/haproxyhaproxy_conf=/usr/local/haproxy/conf/haproxy.cfg#############hap

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

#!/bin/bash
##################################
haproxy_path=/usr/local/haproxy
haproxy_conf=/usr/local/haproxy/conf/haproxy.cfg
#############haproxy-install#####################
cd /tmp
tar xvf haproxy-1.4.*.tar.gz
	if [ $? -eq 0 ];then
		echo "haproxy tar ok"
	else
		echo "haproxy tar no" 
		exit 
	fi
sleep 5
yum install gcc openssl openssl-devel make kernel-devel popt-devel openssl -y
cd /tmp/haproxy-*
make TARGET=linux26 PREFIX=$haproxy_path install
	if [ $? -eq 0 ];then
		echo "haproxy install ok"
	else 
		echo "haproxy install no"
		exit 
	fi
cd $haproxy_path
mkdir conf logs
touch $haproxy_path/conf/haproxy.cfg
#################haproxy.cfg#########################
echo -e "globalntlog 127.0.0.1 local0ntmaxconn 65535ntchroot $haproxy_pathntuser nobodyntgroup nobodyntdaemonntnbproc 8ntpidfile $haproxy_path/haproxy.pidn" > $haproxy_conf

echo -e "ndefaultsntlog 127.0.0.1 local3ntmode httpntoption httplogntoption dontlognullntoption redispatchntretries 2ntmaxconn 2000ntcontimeout 5000ntclitimeout 50000ntsrvtimeout 50000" >> $haproxy_conf

echo -e "nlisten web 0.0.0.0:80ntmode httpntbalance roundrobinntcookie SERVERID insert indirect nocachentoption httplogntlog globalntoption httpchk HEAD /index.html HTTP/1.0" >> $haproxy_conf

read -p "Requires several server " server
for ((i=1;i<=$server;i++))
do 
	read -p "server ip " ip
echo -e "server server$i $ip:80 cookie $i check inter 2000 rise 2 fall 5" >> $haproxy_conf 
done 
###########################keepalived###############################
mandir=/usr/local/src/man
kernel=$(uname -r)
keepalived_conf=/etc/keepalived/keepalived.conf
################################
cd /tmp
tar -xvf keepalived*.tar.gz
cd /tmp/keepalived-*
#############keepalived make##################
./configure --prefix=/ --mandir=$mandir --with-kernel-dir=/usr/src/kernels/$kernel*
	if [ $? -eq 0 ];then
	   make
		if [ $? -eq 0 ];then
			make install
			if [ $? -eq 0 ];then
				echo "keepalived ok"
			   else
				echo "keepalived no"
				exit
			fi
		 else
			echo "keeplaived make no"
			exit
		fi
	 else
		echo "keelalived make no"
	fi
	 	
touch /etc/keepalived/keepalived.conf
########################################################
read -p "NIC binding  " network
####################keepalived.conf#####################
#############Global configuration#######################
echo -e " ! Configuration File for keepalivednglobal_defs {ntnotification_email {n[email?protected]nt}ntnotification_email_from [email?protected]ntsmtp_server 127.0.0.1ntsmtp_connect_timeout 30ntrouter_id HAproxyn}" > $keepalived_conf
############Virtual IP Configuration####################
read -p "Requires several server " server
for ((a=1;a<=$server;a++))
do
read -p "MASTER of BACKUP " states
read -p "priority " priority
read -p "virtual_router id " id
read -p "vip address " vip
echo -e "vrrp_instance VI_$a {ntstate  $statesntinterface  $networkntvirtual_router_id $idnt priority $priorityntadvert_int 1ntauthentication {ntauth_type PASSntauth_pass tdoant}ntvirtual_ipaddress {nt$vip/24 dev $networknt}n}" >> $keepalived_conf
done
#######################################################
/usr/local/haproxy/sbin/haproxy -f $haproxy_conf
/etc/rc.d/init.d/keepalived restart
#########################haproxy-keepalived.sh##############################
touch /etc/rc.d/haproxy-keepalived.sh
echo -e '#!/bin/bashnwhilet:ndon haproxypid=`ps -C haproxy --no-header | wc -l`ntif [ $haproxypid -eq 0 ];thenntt/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfgnttsleep 5nthapropid=`ps -C haproxy --no-header | wc -l`nttif [ $hapropid -eq 0 ];thenntttt/etc/init.d/keepalived stopnttfintfintsleep 5n proxypid=`ps -C haproxy --no-header | wc -l`ntif (($proxypid!= 0));thenntt/etc/init.d/keepalived startntfintsleep 5ndone' > /etc/rc.d/haproxy.sh
#############################################################################
chmod +x /etc/rc.d/haproxy.sh
/usr/bin/nohup /etc/rc.d/haproxy.sh &
rc_local=/etc/rc.local
echo '/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg' >> $rc_local
echo '/etc/rc.d/init.d/keepalived start' >> $rc_local
echo '/usr/bin/nohup /etc/rc.d/haproxy.sh &' >> $rc_local
############################################################################

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读