1
2
3
4
|
[root@localhost ~]
# tar zxvf haproxy-1.4.24.tar.gz
[root@localhost ~]
# cd haproxy-1.4.24
[root@localhosthaproxy-1.4.24]
# make TARGET=linux26 PREFIX=/usr/local/haproxy
[root@localhosthaproxy-1.4.24]
# make install PREFIX=/usr/local/haproxy
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
[root@localhosthaproxy-1.4.24]
# cd /usr/local/haproxy/
[root@localhost haproxy]
# mkdir conf
[root@localhost haproxy]
# cd conf/
[root@localhost conf]
# vi haproxy.cfg
global
log 127.0.0.1 local0
#通过syslog服务的local0输出日志信息
maxconn 4096
#单个进程的最大连接数
uid 99
#所属运行的用户uid,默认nobod
gid 99
#所属运行的用户组,默认nobody
daemon
#后台运行
nbproc 2
#工作进程数量
pidfile
/var/run/haproxy
.pid
defaults
log global
log 127.0.0.1 local3 err
#使用本机上的syslog服务的local3 设备记录错误信息[err warning info debug]
mode http
#工作模式在7层,tcp是4层
option httplog
#使用http日志类别,默认是不记录http请求的
option httpclose
#每次请求完毕后主动关闭http通道式
option forwardfor
#如果后端服务器需要获得客户端的真实IP需要配置次参数,将可以从Http Header中获得客户端IP
option redispatch
#当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
retries 3
#设置尝试次数,3次连接失败则认为服务器不可用
maxconn 2048
#最大连接数
contimeout 5000
#连接超时
clitimeout 50000
#客户端超时
srvtimeout 50000
#服务器超时
timeout check 2000
#心跳检测超时
listen status 0.0.0.0:8080
#定义状态名字和监听端口
stats uri
/haproxy-status
#查看haproxy服务器状态地址
stats auth admin:admin
#查看状态页面的用户名和密码
stats hide-version
#隐藏haproxy版本信息
stats refresh 30s
#每5秒刷新一次状态页面
listen web_server 0.0.0.0:80
#定义后端名字和监听端口
mode http
#采用7层模式
balance roundrobin
#负载均衡算法,这里是轮叫
cookie SERVERID
#允许插入serverid到cookie中,serverid后面可以定义
option httpchk GET
/index
.html
#健康检测
server web1 192.168.1.11:80 weight 3 check inter 500 fall 3
server web2 192.168.1.12:80 weight 2 check inter 500 fall 3
|
1
|
[root@localhost ~]
# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
|
1
|
[root@localhost ~]
# /usr/local/haproxy/sbi n/haproxy -f /usr/local/haproxy/conf/haproxy.cfg -st `cat/var/run/haproxy.pid`
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
[root@localhost ~]
# vi /etc/init.d/haproxy
#!/bin/bash
DIR=
/usr/local/haproxy
PIDFILE=
/var/run/haproxy
.pid
ARG=$*
start()
{
echo
"Starting Haproxy ..."
$DIR
/sbin/haproxy
-f $DIR
/conf/haproxy
.cfg
}
stop()
{
echo
"Stopping Haproxy ..."
kill
-9 $(
cat
$PIDFILE)
}
case
$ARG
in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo
"Usage: start|stop|restart"
|
1
2
|
[root@localhost ~]
# chmod +x/etc/init.d/haproxy
[root@localhost ~]
# echo "/etc/init.d/haproxy start" >> /etc/rc.local
|
1
2
3
4
|
[root@localhost ~]
# vi /etc/rsyslog.conf #在下面添加
local3.*
/var/log/haproxy
.log
local0.*
/var/log/haproxy
.log
[root@localhost ~]
# service rsyslog restart
|
1
2
3
|
[root@localhost ~]
# yum install httpd –y
[root@localhost ~]
# service httpd start
[root@localhost ~]
# echo "web1/web2" > /var/www/html/index.html
|