OpenFire源码学习之三十:haproxy负载均衡
安装
使用Haproxy做负载均衡。
下载地址:http://www.haproxy.com/downloads/trial-versions/
下载后解压:
tar zcvf haproxy-1.3.20.tar.gz
cd haproxy-1.3.20
make TARGET=linux26 PREFIX=/usr/local/haprpxy
make install PREFIX=/usr/local/haproxy
本人安装在/usr/local/haproxy。
解下来编辑haproxy.cfg
vi haproxy.cfg
global maxconn 51200 chroot /usr/local/haproxy uid 99 gid 99 daemon #quiet nbproc 2 #进程数 pidfile /usr/local/haproxy/haproxy.pid defaults mode http #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK #retries 2 #两次连接失败就认为是服务器不可用,也可以通过后面设置 option redispatch #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器 option abortonclose #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接 timeout connect 5000ms #连接超时 timeout client 30000ms #客户端超时 timeout server 30000ms #服务器超时 #timeout check 2000 #=心跳检测超时 log 127.0.0.1 local0 err #[err warning info debug] balance roundrobin #负载均衡算法 #option httplog #日志类别,采用httplog #option httpclose #每次请求完毕后主动关闭http通道,ha-proxy不支持keep-alive,只能模拟这种模式的实现 #option dontlognull #option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip listen admin_stats bind 0.0.0.0:8888 #监听端口 option httplog #采用http日志格式 stats refresh 30s #统计页面自动刷新时间 stats uri /haproxy-stats #统计页面url stats realm Haproxy Manager #统计页面密码框上提示文本 stats auth admin:admin #统计页面用户名和密码设置 #stats hide-version #隐藏统计页面上HAProxy的版本信息 listen test1 bind :5222 mode tcp server t1 192.169.1.120:5222 server t2 192.169.1.240:5222 server t3 192.169.1.250:5222 listen test2 192.169.1.245:80 option httpclose option forwardfor server s1 192.169.1.120:9090 check weight 1 minconn 1 maxconn 3 check inter 40000 server s2 192.169.1.240:9090 check weight 1 minconn 1 maxconn 3 check inter 40000 server s3 192.169.1.250:9090 check weight 1 minconn 1 maxconn 3 check inter 40000
启动
开启:/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
查看进程:ps -e|grep haproxy
杀死进程:kill -s 9 9883
另外还需要设置下linux环境下的打开连接数
修改linux tcp参数
ulimit -n 102400