haproxy-1.4.21.tar.gz拷贝至服务器的/opt目录下

  1. [root@localhost opt]# tar -zxvf haproxy-1.4.21.tar.gz
  2. [root@localhost opt]# cd haproxy-1.4.21
  3. [root@localhost haproxy-1.4.21]# make TARGET=linux26 PREFIX=/usr/local/haproxy
  4. [root@localhost haproxy-1.4.21]# makmake install PREFIX=/usr/local/haproxy
  5. [root@localhost haproxy-1.4.21]# cp examples/haproxy.cfg /usr/local/haproxy/
  6. [root@localhost haproxy-1.4.21]# cd /usr/local/haproxy/
  7. [root@localhost haproxy]# vi haproxy.cfg

增加Haproxy Manager:

  1. listen admin_stats
  2. bind 0.0.0.0:8888
  3. option httplog
  4. stats refresh 30s
  5. stats uri /stats
  6. stats realm Haproxy Manager
  7. stats auth admin:admin
  8. #stats hide-version
  1. [root@localhost opt]# touch /etc/rc.d/init.d/haproxy
  2. [root@localhost opt]# vi /etc/rc.d/init.d/haproxy

增加启动脚本:

  1. #!/bin/bash
  2. BASE_DIR="/usr/local/haproxy"
  3. ARGV="$@"
  4. start()
  5. {
  6. echo "START HAPoxy SERVERS"
  7. $BASE_DIR/sbin/haproxy -f $BASE_DIR/haproxy.cfg
  8. }
  9. stop()
  10. {
  11. echo "STOP HAPoxy Listen"
  12. kill -TTOU pidof haproxy
  13. echo "STOP HAPoxy process"
  14. kill -USR1 pidof haproxy
  15. }
  16. case $ARGV in
  17. start)
  18. start
  19. ERROR=$?
  20. ;;
  21. stop)
  22. stop
  23. ERROR=$?
  24. ;;
  25. restart)
  26. stop
  27. start
  28. ERROR=$?
  29. ;;
  30. *)
  31. echo "
  32. hactl.sh
  33. [start|restart|stop]"
  34. esac
  35. exit $ERROR

启动成功:

  1. [root@localhost haproxy]# service haproxy start
  2. START HAPoxy SERVERS

报错

  1. [root@localhost haproxy]# service haproxy start
    START HAPoxy SERVERS
    [WARNING] 150/045452 (48330) : parsing [/usr/local/haproxy/haproxy.cfg:21]: keyword ‘redispatch’ is deprecated, please use ‘option redispatch’ instead.
    [ALERT] 150/045452 (48330) : parsing [/usr/local/haproxy/haproxy.cfg:88] : error opening file for custom error message <503>.
    [ALERT] 150/045452 (48330) : Error(s) found in configuration file : /usr/local/haproxy/haproxy.cfg
    [ALERT] 150/045452 (48330) : Fatal errors found in configuration.
    [root@localhost haproxy]# vi /etc/rc.d/init.d/haproxy

解决办法:
将/usr/local/haproxy/haproxy.cfg文件的21行和88行注释即可。

  1. [root@localhost haproxy]# service haproxy start
    START HAPoxy SERVERS
    [ALERT] 150/045942 (48392) : [/usr/local/haproxy/sbin/haproxy.main()] Cannot chroot(/usr/share/haproxy).

解决办法:
[root@localhost haproxy]# mkdir /usr/share/haproxy

访问:http://192.168.91.131:8888/stats

配置Redis的haproxy.cfg

  1. global
  2. log 127.0.0.1 local0 #日志输出配置,所有日志都记录在本机,通过local0输出
  3. maxconn 4096 #最大连接数
  4. chroot /usr/local/haproxy #改变当前工作目录
  5. user haproxy #所属运行的用户
  6. group haproxy #所属运行的用户组
  7. daemon #以后台形式运行ha-proxy
  8. nbproc 4 #启动4个ha-proxy实例
  9. pidfile /usr/local/haproxy/log/haproxy.pid #pid文件位置
  10. defaults
  11. log 127.0.0.1 local3 #日志文件的输出定向
  12. mode tcp #{ tcp|http|health } 设定启动的实例的协议类型,此处要选择tcp,因为redis是基于tcp协议运行的
  13. option dontlognull #保证HAProxy不记录上级负载均衡发送过来的用于检测状态没有数据的心跳包
  14. option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
  15. retries 2 #重试2次连接失败就认为服务器不可用,主要通过后面的check检查
  16. maxconn 2000 #最大连接数
  17. balance roundrobin #负载均衡算法,roundrobin表示轮询,source表示按照IP
  18. contimeout 5000 #连接超时时间
  19. clitimeout 50000 #客户端连接超时时间
  20. srvtimeout 50000 #服务器端连接超时时间
  21. listen proxy 192.168.1.168:6300
  22. server redis_192.168.1.168_6378 192.168.1.168:6378 check inter 2000 rise 2 fall 5 #你的均衡节点
  23. server redis_192.168.1.168_6379 192.168.1.168:6379 check inter 2000 rise 2 fall 5