负载均衡工具haproxy安装,配置,使用

一,什么是haproxy

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。 HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

二,安装haproxy

下载列表地址http://haproxy.1wt.eu

wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz

#tar zxvf haproxy-1.4.8.tar.gz
#cd haproxy-1.4.8
#uname -a           //查看linux内核版本
#make TARGET=linux26 PREFIX=/usr/local/haproxy
#make install PREFIX=/usr/local/haproxy

三,配置haproxy

vi /usr/local/haproxy/haproxy.cfg

global
        maxconn 5120
        chroot /usr/local/haproxy
        uid 99
        gid 99
        daemon
        quiet
        nbproc  2
        pidfile /usr/local/haproxy/haproxy.pid
defaults
        log     global
        mode    http
        option  httplog
        option  dontlognull
        log 127.0.0.1 local3
        retries 3
        option redispatch
        maxconn 2000
        contimeout      5000
        clitimeout      50000
        srvtimeout      50000

listen webinfo :1080
       mode http
       balance roundrobin
       option httpclose
       option forwardfor
server phpinfo1 192.168.18.2:10000 check weight 1 minconn 1 maxconn 3 check inter 40000
server phpinfo2 127.0.0.1:80 check weight 1 minconn 1 maxconn 3 check inter 40000

listen webmb :1081
       mode http
       balance roundrobin
       option httpclose
       option forwardfor
server webmb1 192.168.1.91:10000 weight 1 minconn 1 maxconn 3 check inter 40000
server webmb2 127.0.0.1:10000 weight 1 minconn 1 maxconn 3 check inter 40000

 listen stats :8888
       mode http
       transparent
       stats uri / haproxy-stats
       stats realm Haproxy \ statistic
       stats auth zhangy:xtajmd

三,启动haproxy

#启动haproxy

/usr/local/haproxy/haproxy -f /usr/local/haproxy/haproxy.cfg

#查看是否启动

[zhangy@BlackGhost haproxy]$ ps -e|grep haproxy
4859 ?        00:00:00 haproxy
4860 ?        00:00:00 haproxy

四,压力测试

[root@BlackGhost haproxy]# /usr/local/bin/webbench -c 100 -t 30 http://localhost:1080/phpinfo.php
Webbench – Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://localhost:1080/phpinfo.php
100 clients, running 30 sec.

Speed=26508 pages/min, 20929384 bytes/sec.
Requests: 13254 susceed, 0 failed.

说明:haproxy监听的端口是1080,代理192.168.18.2:10000,127.0.0.1:10000

统计监听的是8888端口 http://localhost:8888/haproxy-stats


 

 

配置说明:

1.4系列参考配置文件

http://haproxy.1wt.eu/download/1.4/doc/configuration.txt

1.3系列参考配置文件

http://haproxy.1wt.eu/download/1.3/doc/configuration.txt

作者:海底苍鹰
地址:http://blog.51yip.com/server/868.html

配置文件详解:

#########################################################################
# HAProxy 配置文件
#########################################################################

global
# 使用系统的syslog记录日志(通过udp,默认端口号为514)
log 127.0.0.1 local0 # info [err warning info debug]
chroot /home/user/haproxy

#限制单个进程的最大连接数
maxconn 65535

# 让进程在后台运行,即作为守护进程运行,正式运行的时候开启,此处先禁止,等同于在命令行添加参数 -D
# daemon
# 指定作为守护进程运行的时候,要创建多少个进程,默认只创建一个,需要daemon开启模式
# nbproc 1

# 设置debug模式运行,与daemon模式只能互斥,等同于在命令行添加参数 -d
# debug
pidfile /home/user/haproxy/logs/haproxy.pid    # not work

defaults
# 在连接失败或断开的情况下,允许当前会话被重新分发
option redispatch
# 设置在一个服务器上链接失败后的重连次数
retries 2
# 设置服务器分配算法
balance roundrobin

# 不记录空连接
option dontlognull

# 设置等待连接到服务器成功的最大时间
timeout connect 5000ms
# 设置客户端的最大超时时间
timeout client 1800000ms
# 设置服务器端的最大超时时间
timeout server 1800000ms

# Enable the sending of TCP keepalive packets on both sides, clients and servers
# NOTE: 在服务器CPU强劲的情况下,最好不要开启保活,这样可减少资源消耗
#option tcpka

##############################统计页面配置##################################

listen admin_stat
# 监听端口
bind *:8011
# http的7层模式
mode http
option httplog
log global
# 统计页面自动刷新时间
stats refresh 30s
# 统计页面URL
stats uri /admin?stats
# 统计页面密码框上提示文本
stats realm Haproxy\ Statistics
# 统计页面用户名和密码设置
stats auth admin:admin
# 隐藏统计页面上HAProxy的版本信息
stats hide-version

###########################TCP连接的监听配置################################

listen  tcp-in
bind *:2211
mode tcp
# 日志记录选项
option tcplog
log global

# 后台服务器
# weight  -- 调节服务器的负重
# check -- 允许对该服务器进行健康检查
# inter  -- 设置连续的两次健康检查之间的时间,单位为毫秒(ms),默认值 2000(ms)
# rise  -- 指定多少次连续成功的健康检查后,即可认定该服务器处于可操作状态,默认值 2
# fall  -- 指定多少次不成功的健康检查后,认为服务器为当掉状态,默认值 3
# maxconn  -- 指定可被发送到该服务器的最大并发连接数
server localhost 0.0.0.0:2233 weight 3 check inter 2000 rise 2 fall 3
server 192.168.1.100 192.168.1.100:2233 weight 3 check inter 2000 rise 2 fall 3
server 192.168.1.101 192.168.1.101:2233 weight 3 check inter 2000 rise 2 fall 3

#########################HTTP连接的监听配置################################

listen  http-in
bind *:2212
mode http
option httplog
log global

# 设置健康检查模式
#option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www
#option smtpchk

# 后台服务器
server localhost 0.0.0.0:2234 weight 3 check inter 2000 rise 2 fall 3
server 192.168.1.100 192.168.1.100:2234 weight 3 check inter 2000 rise 2 fall 3
server 192.168.1.101 192.168.1.101:2234 weight 3 check inter 2000 rise 2 fall 3

2 thoughts on “负载均衡工具haproxy安装,配置,使用

  1. Pingback: haproxy 笔记 – x

Leave a Reply