HAProxy 安装与配置

来源:互联网 发布:python 字符串 查找 编辑:程序博客网 时间:2024/06/08 04:22
1.安装
1)下载安装包
# wget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.20.tar.gz
# tar -zxvf haproxy-1.3.20.tar.gz

2)将 haproxy 安装到 /usr/local/haproxy
# cd haproxy-1.3.20
# make TARGET=linux26 PREFIX=/usr/local/haproxy
# make install PREFIX=/usr/local/haproxy

2.配置
安装完毕后,进入安装目录配置文件,默认情况下目录里是没有 .cfg 配置文件的
可以从安装文件目录中 examples 下的 haproxy.cfg 拷贝到 usr/local/haproxy 下
# cd /usr/local/haproxy
# vi haproxy.cfg
【根据实际需求更改配置文件】
global                       #全局设置
   log 127.0.0.1 local0     #日志输出配置,所有日志都记录在本机,通过 local0 输出
   maxconn 4096             #最大连接数
   chroot /usr/local/haproxy
   uid 99                   #所属运行的用户 uid
   gid 99                   #所属运行的用户组
   daemon               #以后台形式运行 haproxy
   nbproc 2               #启动2个 haproxy 实例
   pidfile /usr/local/haproxy/haproxy.pid       #将所有进程写入 pid 文件
   #debug
   #quiet

defaults #默认设置
   log 127.0.0.1 local3 #日志文件的输出定向
   mode http                 #所处理的类别,默认采用 http 模式,可配置成 tcp 作 4 层消息转发
   option httplog           #日志类别,采用 httplog
   option dontlognull 
   option forwardfor       #如果后端服务器需要获得客户端真实 ip 需要配置的参数,可以从 Http Header 中获得客户端 ip
   option httpclose         #每次请求完毕后主动关闭 http 通道, haproxy 不支持 keep-alive ,只能模拟这种模式的实现
   retries 3                 # 3 次连接失败就认为服务器不可用,主要通过后面的 check 检查
   option redispatch         #当 serverid 对应的服务器挂掉后,强制定向到其他健康服务器
   maxconn 2000             #最大连接数
   stats uri /status         # haproxy 监控页面的访问地址
   contimeout 5000         #连接超时时间
   clitimeout 50000         #客户端连接超时时间
   srvtimeout 50000         #服务器端连接超时时间
   stats auth admin:admin  #设置监控页面的用户和密码: admin
   stats hide-version       #隐藏统计页面的 HAproxy 版本信息

frontend http-in             #前台
   bind *:80
   mode http
   option httplog
   log global
   default_backend htmpool   #静态服务器池


backend htmpool             #后台
   balance leastconn         #负载均衡算法
   option httpchk HEAD /index.htm HTTP/1.0         #健康检查
   server web1 10.16.0.9:8085 cookie 1 weight 5 check inter 2000 rise 2 fall 3
   server web2 10.16.0.10:8085 cookie 2 weight 3 check inter 2000 rise 2 fall 3

3.加上日志支持
# vi /etc/syslog.conf
在最下边增加
local3.*    /var/log/haproxy.log
local0.*    /var/log/haproxy.log
# vi /etc/sysconfig/syslog
修改: SYSLOGD_OPTIONS="-r -m 0"
重启日志服务 service syslog restart

4.设置开机启动
为了方便系统在开机时加载,还可以创建启动脚本:
# vi /etc/rc.d/init.d/haproxy  
【内容如下】
#! /bin/sh
set -e

PATH = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/haproxy/sbin
PROGDIR = /usr/local/haproxy
PROGNAME = haproxy
DAEMON = $PROGDIR/sbin/$PROGNAME
CONFIG = $PROGDIR/$PROGNAME.conf
PIDFILE = $PROGDIR/$PROGNAME.pid
DESC = "HAProxy daemon"
SCRIPTNAME = /etc/init.d/$PROGNAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
start()
{
  echo -n "Starting $DESC: $PROGNAME"
  $DAEMON -f $CONFIG
  echo "."
}
stop()
{
  echo -n "Stopping $DESC: $PROGNAME"
  haproxy_pid=cat $PIDFILE
  kill $haproxy_pid
  echo "."
}
restart()
{
  echo -n "Restarting $DESC: $PROGNAME"
  $DAEMON -f $CONFIG -p $PIDFILE -sf $(cat $PIDFILE)
  echo "."
}

case "$1" in
 start)
     start
     ;;
 stop)
     stop
     ;;
 restart)
     restart
     ;;
 *)
     echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
     exit 1
     ;;
esac
exit 0

保存后赐予可执行权限
# chmod +x /etc/rc.d/init.d/haproxy
就可以使用 service haproxy start|stop|restart 来控***务的启动停止跟重启。
并通过以下命令加载到开机服务启动列表
# chkconfig --add haproxy

5.启动服务
启动服务:
# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
重启服务:
# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg -st `cat /usr/local/haproxy/logs/haproxy.pid`  (没有换行)
停止服务:
# killall haproxy

6.举例
在浏览器中输入haproxy监控地址:http://127.0.0.1:1080/status
0 0
原创粉丝点击