我们专注服务于当下互联网基础设施建设与云计算、大数据时代的各种需求!

haproxy安装配置

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

tar -zxvf haproxy-1.4.18.tar.gz

cd haproxy-1.4.18

make TARGET=linux26 PREFIX=/usr/local/haproxy

make install PREFIX=/usr/local/haproxy

mkdir /usr/local/haproxy/etc

vi haproxy.cfg

global

#log 127.0.0.1 local0

log 127.0.0.1 local1 notice

maxconn 10240 #最大连接数

chroot /usr/local/haproxy #安装目录

uid 501 #用户haproxy

gid 501 #组haproxy

daemon #守护进程运行

nbproc 2 #进程数量

pidfile /usr/local/haproxy/haproxy.pid

defaults

log global

mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK

#option httplog

option httpclose

option dontlognull

option forwardfor

option redispatch #如果cookie写入了serverId而客户端不会刷新cookie,当serverId对应的服务器挂掉后,强制定向到其他健康的服务器

retries 3 #3次连接失败就认为是服务器不可用,也可以通过后面设置

maxconn 2000

balance roundrobin

contimeout 5000 #连接超时

clitimeout 50000 #客户端超时

srvtimeout 50000 #服务器超时

#后台管理

stats enable

stats refresh 3

stats uri /status #后台管理地址

stats auth monitor:monitor #管理帐号:管理密码

stats hide-version #隐藏统计页面上HAProxy的版本信息

frontend http-upstream

mode http #配置TCP模式

option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接

option httpclose #每次请求完毕后主动关闭http通道,HA-Proxy不支持keep-alive模式

option forwardfor #如果后端服务器需要获得客户端的真实IP需要配置次参数,将可以从Http Header中获得客户端IP

maxconn 2000

#cookie SERVERID insert indirect #允许插入serverid到cookie中,serverid后面可以定义

balance roundrobin

#balance source #负载均衡的方式balance source机制,它跟Nginx的ip_hash机制原理类似,是让客户机访问时始终访问后端的某一台真实的web服务器,这样让session就固定下来了

#balance leastconn #负载均衡的方式,leastconn根据服务器当前的请求数,取当前请求数最少的服务器

bind *:8080 #监听地址

default_backend http-pool

option allbackups #但设置了backup的时候,默认第一个backup会优先,设置option allbackups后所有备份服务器权重一样

frontend mysql-upstream

mode tcp #配置TCP模式

maxconn 2000

balance roundrobin

bind *:3307 #监听地址

default_backend mysql-pool

 

 

 

backend http-pool

option httpchk GET /ok.html #用来做健康检查

option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www

#服务器定义,cookie 1表示serverid为1,check inter 1500 是检测心跳频率rise 3是3次正确认为服务器可用,fall 3是3次失败认为服务器不可用,weight代表权重

#可以根据机器的性能不同,不使用默认的连接数配置而使用自己的特殊的连接数配置#如minconn 10 maxconn 20

server mms1 10.1.5.134:80 cookie 1 minconn 4 maxconn 12 check inter 1500 rise 3 fall 3 weight 1

server mms2 10.1.6.118:80 cookie 2 minconn 4 maxconn 12 check inter 1500 rise 3 fall 3 weight 1

#备份机器配置,正常情况下备机不会使用,当主机的全部服务器都down的时候备备机会启用

server dnali-back1 10.1.7.114:80 check backup inter 1500 rise 3 fall 3

server dnali-back2 10.1.7.114:80 check backup inter 1500 rise 3 fall 3

backend mysql-pool

option mysql-check GET /ok.sh #用来做健康检查

server server1 192.168.1.1:3306 weight 3 maxconn 32 check #check表示对这个server进行健康检查

server server2 192.168.1.2:3306 weight 3 maxconn 32 check

##################################

#启动

sudo ./sbin/haproxy -f haproxy.cfg

#重启

sudo ./sbin/haproxy -f haproxy.cfg -st `cat logs/haproxy.pid`