1.安装haproxy(ubuntu server)
下载haproxy-1.7.9,并解压至home目录中(~/haproxy-1.7.9)
编译:make TARGET=Linux26 ARCH=x86_64 PREFIX=/usr/local/haproxy
target(OS内核版本)、arch(OS位数)、prefix(安装路径)一定要大写,linux2.6以上的版本,我们都选择Linux26,查看内核版本:uname -a
安装:sudo make install PREFIX=/usr/local/haproxy
完成后再/usr/local/haproxy目录下生成以下目录:
2.haproxy配置
创建配置文件/etc/haproxy/haproxy.cfg
global
log /dev/log local1 #[日志输出配置,所有日志都记录在本机,通过local0输出]
log /dev/log local2 notice #定义haproxy 日志级别[error warringinfo debug]
daemon #以后台形式运行harpoxy
nbproc 1 #设置进程数量
pidfile /usr/local/haproxy/haproxy.pid
user haproxy
group haproxy
maxconn 4096 #默认最大连接数,需考虑ulimit-n限制
#chroot /usr/local/haproxy
defaults
log global
mode tcp #默认的模式(tcp|http|health),tcp是4层,http是7层,health只会返回OK
option tcplog #日志级别
option dontlognull #不记录健康检查日志信息
option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
option redispatch #serverId对应的服务器挂掉后,强制定向到其他健康的机器
retries 3 #连接3次失败就认为是服务不可用
timeout connect 5000ms #连接超时
timeout client 30000ms #客户端超时
timeout server 30000ms #服务器超时
timeout check 3000 #心跳检测超时
listen admin_stats
bind *:8060 #设置监听的IP地址和端口
mode http #http的7层模式
option httplog #采用http日志格式
maxconn 10 #默认的最大连接数
stats refresh 30s #统计页面自动刷新时间
stats uri /stats #统计页面url
stats realm Haproxy Manager #统计页面密码框上提示文本
stats auth admin:admin #设置监控页面的用户和密码,可以设置多个
stats auth root:Password@1 #设置监控页面的用户和密码
stats hide-version #隐藏统计页面上HAProxy的版本信息
stats admin if TRUE #设置手工启动/禁用,后端服务器
listen mysql_rcw_7706
bind *:7706
mode tcp
option tcplog
balance roundrobin
option tcp-check
maxconn 2000
log /dev/log local1 info
server mysql61 192.168.56.103:7002 maxconn 1024 check inter 2000 rise 2 fall 3
server mysql62 192.168.56.104:7002 maxconn 1024 check inter 2000 rise 2 fall 3
listen mysql_rcr_7707
bind *:7707
mode tcp
option tcplog
balance roundrobin
option tcp-check
maxconn 2000
log /dev/log local1 info
server mysql61 192.168.56.103:7001 maxconn 1024 check inter 2000 rise 2 fall 3
server mysql62 192.168.56.104:7001 maxconn 1024 check inter 2000 rise 2 fall 3
3.log配置
在/etc/rsyslog.conf文件中添加:
#haproxy
local1.* /var/log/haproxy.log
local2.* /var/log/haproxy/log
在/etc/rsyslog.d/50-default.conf文件中找到 -/var/log/syslog行,在其前面key的末尾追加:
;local1.none;local2.none(注意分号表示local1、local2设备的日志信息不再记录于/var/log/syslog里)
local1.* -/var/log/haproxy.log
local2.* -/var/log/haproxy.log
4.启动/停止
启动:/usr/local/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg
#!/bin/sh
HOME=/usr/local/haproxy
DAEMON=$HOME/sbin/haproxy
CONFIG=/etc/haproxy/haproxy.cfg
DAEMON_ARGS="-f $CONFIG"
DESC="HAProxy Daemon"
echo "Starting $DESC, and use conf $DAEMON_ARGS"
$DAEMON $DAEMON_ARGS
停止:杀掉pidfile中的进程
#!/bin/sh
DESC="HAProxy Daemon"
PIDFILE=/usr/local/haproxy/haproxy.pid
if test $PIDFILE
then
echo "Stopping $DESC"
if kill $(cat $PIDFILE)
then
echo "Stop OK"
else
echo "Stop Failed"
fi
else
echo "No $DESC running"
fi