设为首页 收藏本站
查看: 1263|回复: 0

[经验分享] haproxy部署笔记

[复制链接]

尚未签到

发表于 2015-9-4 13:41:01 | 显示全部楼层 |阅读模式
  感谢本组同志秦小妹的协助,此篇文章源自于她的劳动成果,并非本人原创
  1、HAProxy安装及日志配置
  
#  vim install-haproxy.sh     
#! /bin/bash     
   
dir=/usr/local     
ha_dir=${dir}/haproxy
  
#install     
if [ ! -e "$ha_dir" ]; then     
#下载源码到/tmp/haproxy-1.4.22.tar.gz     
wget -nc -P /tmp http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.22.tar.gz     
  tar -zxvf /tmp/haproxy-1.4.22.tar.gz -C /tmp     
  cd /tmp/haproxy-1.4.22
  
#编译、安装     
  make TARGET=linux26 PREFIX=/usr/local/haproxy     
  make install PREFIX=/usr/local/haproxy     
  cd /usr/local/haproxy     
#     
if [ ! -e "$ha_dir" ]; then     
echo "error! can't install haproxy please check! Will now out of the scrip !"     
        exit 1     
  else     
     #添加启动用户组     
     mkdir -p /var/haproxy     
     /usr/sbin/groupaddhaproxy     
     /usr/sbin/useradd -g haproxy -d /var/haproxy -s /sbin/nologinhaproxy     
     #创建日志目录     
     mkdir -p /data/haproxy/logs     
     chown -R haproxy:haproxy /data/haproxy/     
     chmod 775 -R /data/haproxy     
        ! grep 'haproxy' /etc/syslog.conf&& echo ' local0.*      /data/haproxy/logs/haproxy.log'>> /etc/syslog.conf     
     sed -ir 's/SYSLOGD_OPTIONS="-m 0"/SYSLOGD_OPTIONS="-r -m 0"/g'   /etc/sysconfig/syslog && /etc/init.d/syslog restart     
fi     
else     
echo "haproxy is already exists!"     
fi
  
2、添加/usr/local/haproxy/conf/haproxy.cfg配置文件
  
#HAProxy配置文件vim /usr/local/haproxy/conf/haproxy.cfg
  
global     
  log 127.0.0.1 local0 info #[err warning info debug]     
maxconn 65535     
chroot /usr/local/haproxy     
  user haproxy     
  group haproxy     
  daemon     
nbproc 1     
pidfile /usr/local/haproxy/haproxy.pid     
defaults     
maxconn 65535     
  timeout connect 5s  #连接超时     
  timeout client 30s  #客户端超时     
  timeout server 30s  #服务器超时     
listen stats     
  bind 0.0.0.0:1080     
  mode http     
  log 127.0.0.1 local0 info     
  option httplog     
  option httpclose     
  option dontlognull     
  retries 3     
  stats uri /admin?stats     
frontend varnish_front     
  bind :80     
mode http     
log global     
  option httplog     
  option httpclose     
  option forwardfor     
maxconn 65535  
  capture request header Host len 40     
  capture request header Content-Length len 10     
  capture request header Refererlen 200     
  capture response header Server len 40     
  capture response header Content-lenthlen 10     
  capture response header Cache-Control len 10  
default_backendvarnish_backend     
backend varnish_backend     
  mode http     
  balance uri     
  hash-type consistent
  server varnish0 192.168.1.20:8089 cookie varnish0 weight 1 check inter 40000 maxconn 65535 rise 3 fall 3   
server varnish1 192.168.1.21:8089 cookie varnish1 weight 1 check inter 40000 maxconn 65535 rise 3 fall 3     
server varnish2 192.168.1.22:8089 cookie varnish2 weight 1 check inter 40000 maxconn 65535 rise 3 fall 3
  
  3、工作配置
  3.1、HAProxy开机启动脚本
  
# vim /etc/rc.d/init.d/haproxy内容如下:     
#! /bin/sh     
# chkconfig: - 90 10  #chkconfig:行和 description:行一定要写,否则执行service –add时会出现:haproxy服务不支持chkconfig     
# description: HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high availability environments.
  
. /etc/init.d/functions     
# Source networking configuration.     
. /etc/sysconfig/network     
# Check that networking is up.
  
[ ${NETWORKING} = "no" ] && exit 0     
config="/usr/local/haproxy/conf/haproxy.cfg"     
exec="/usr/local/haproxy/sbin/haproxy"     
PID=/usr/local/haproxy/haproxy.pid     
prog="haproxy"     
[ -f $config ] || exit 1     
RETVAL=0     
start() {     
  daemon $exec -c -f $config     
if [ $? -ne 0 ]; then     
echo "Errors found in configuration file."     
        return 1     
    fi     
  echo -n "Starting HAproxy: "     
  $exec -D -f $config     
  RETVAL=$?     
  echo     
  [ $RETVAL -eq 0 ] && touch /var/lock/subsys/haproxy     
  return $RETVAL     
}     
stop() {     
echo -n "Shutting down HAproxy: "     
killproc -p $PID $prog     
RETVAL=$?     
echo     
[ $RETVAL -eq 0 ] &&rm -f /var/lock/subsys/haproxy     
return $RETVAL     
}     
restart() {     
$exec -c -q -f $config     
if [ $? -ne 0 ]; then     
echo "Errors found in configuration file, check it with 'haproxy check'."     
       return 1     
   fi     
stop     
start     
}     
rhstatus() {     
status -p $PID $prog     
}     
# See how we were called.     
case "$1" in     
start)     
        start     
        ;;     
stop)     
        stop     
        ;;     
restart)     
        restart     
        ;;     
status)     
rhstatus     
        ;;     
*)     
        echo $"Usage: haproxy {start|stop|restart|status}"     
        RETVAL=1     
esac     
        exit $RETVAL
  
#保存后给予可执行权限     
chmod +x /etc/rc.d/init.d/haproxy     
#就可以使用/sbin/service haproxystart|stop|restart|status来控制服务的启动、关闭和重启、查询状态     
#并可以通过以下命令加载到开机服务列表     
/sbin/chkconfig --add haproxy     
/sbin/chkconfig --level 2345haproxy on
  
3.2、HAProxy日志切分脚本
  
a)、添加/usr/local/haproxy/bin/cut_haproxy_log.sh脚本
  #! /bin/sh
  HOME_PATH=/data/haproxy   
LOG_FILE=${HOME_PATH}/logs/haproxy.log   
date=$(date -d "yesterday" +"%Y-%m-%d")
  cp ${LOG_FILE} ${HOME_PATH}/logs/haproxy-${date}.log   
echo > ${LOG_FILE}
  
b)、定时运行切分日志脚本
  echo "00 0 * * * /usr/local/haproxy/bin/cut_haproxy_log.sh" >> /etc/crontab

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-109428-1-1.html 上篇帖子: Haproxy使用总结 下篇帖子: Haproxy配置参数
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表