1 下载地址
http://www.haproxy.org/download/1.6/src/haproxy-1.6.14.tar.gz
2 安装
tar xf haproxy-1.6.14.tar.gz -C /usr/local/src/
cd /usr/local/src/
cd haproxy-1.6.14/
uname -a
修改 Makefile
[root@node1 haproxy-1.6.14]# vim Makefile
……
PREFIX = /usr/local/haproxy #修改
SBINDIR = $(PREFIX)/sbin
MANDIR = $(PREFIX)/share/man
DOCDIR = $(PREFIX)/doc/haproxy
#### TARGET system
# Use TARGET=<target_name> to optimize for a specifc target OS among the
# following list (use the default "generic" if uncertain) :
# generic, linux22, linux24, linux24e, linux26, solaris,
# freebsd, openbsd, netbsd, cygwin, custom, aix51, aix52
TARGET = linux26 #添加
make && make install
安装完的信息:
install -d "/usr/local/haproxy/sbin"
install haproxy "/usr/local/haproxy/sbin"
install -d "/usr/local/haproxy/share/man"/man1
install -m 644 doc/haproxy.1 "/usr/local/haproxy/share/man"/man1
install -d "/usr/local/haproxy/doc/haproxy"
拷贝启动文件
cp /usr/local/haproxy/sbin/haproxy /usr/sbin/
将启动脚本拷贝到/etc/init.d/haproxy
cp haproxy.init /etc/init.d/haproxy
授予执行权限
chmod +x /etc/init.d/haproxy
useradd -r haproxy
创建haproxy工作目录
mkdir /etc/haproxy
mkdir /var/lib/haproxy
拷贝主配置文件
cp auth.cfg /etc/haproxy/haproxy.cfg
打开514 监听日志
vim /etc/rsyslog.conf
$ModLoad imtcp
$InputTCPServerRun 514
local3.* /var/log/haproxy.log
service rsyslog restart
3 haproxy 配置文件
#全局配置
global
#日志级别
log 127.0.0.1 local3 info
chroot /var/lib/haproxy
#运行用户
user haproxy
#运行用户组
group haproxy
#守护进程运行方式
daemo
#最大连接数
maxconn 8192
#默认配置
defaults
#设置log使用全局log
log global
#工作模式
mode http
#记载http日志
option httplog
#不记录空日志
option dontlognull
#连接超时时间ms为单位
timeout connect 5000
#客户端连接超时时间
timeout client 50000
#服务端连接超时时间
timeout server 50000
#前端代理
#运行用户组
group haproxy
#守护进程运行方式
daemon
#最大连接数
maxconn 8192
#默认配置
defaults
#设置log使用全局log
log global
#工作模式
mode http
#记载http日志
option httplog
#不记录空日志
option dontlognull
#连接超时时间ms为单位
timeout connect 5000
#客户端连接超时时间
timeout client 50000
#服务端连接超时时间
timeout server 50000
#前端代理
frontend www_hellozz_com
#绑定主机和端口
bind *:80
#uri状态
stats uri /haproxy?stats
#转发到对应的后端主机组
default_backend backend_www_hellozz_com
#后端代理
backend backend_www_hellozz_com
#自定义头部信息获取客户端真实IP
option forwardfor header X-REAL-IP
#自定义option健康检查 可不写 默认检查端口
option httpchk GET /index.html
#负载均衡方式 roundrobin 轮询,source like iphash,cookie,SERVERID
#source 根据请求源IP
#static-rr 根据权重
#leastconn 最少连接者先处理
#uri 根据请求的uri
#url_param 根据请求的url参数
#rdp-cookie 据据cookie(name)来锁定并哈希每一次请求
#hdr(name) 根据HTTP请求头来锁定每一次HTTP请求
#roundrobin 轮询方式
balance roundrobin
#真实Server check 支持url健康检测 inter 时间间隔默认为毫秒,rise 检查次数, fall 失败次数 weight 权重
server node1 10.10.100.151:80 check inter 2000 rise 3 fall 3 weight 1
server node2 10.10.100.152:80 check inter 2000 rise 3 fall 3 weight 1
启动haproxy
/etc/init.d/haproxy start
4 haproxy负载均衡算法
Haproxy有8种负载均衡算法(balance),分别如下:
1.balance roundrobin # 轮询,软负载均衡基本都具备这种算法
2.balance static-rr # 根据权重,建议使用
3.balance leastconn # 最少连接者先处理,建议使用
4.balance source # 根据请求源IP,建议使用
5.balance uri # 根据请求的URI
6.balance url_param,# 根据请求的URl参数'balance url_param' requires an URL parameter name
7.balance hdr(name) # 根据HTTP请求头来锁定每一次HTTP请求
8.balance rdp-cookie(name) # 根据据cookie(name)来锁定并哈希每一次TCP请求