HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
操作系统:
Ubuntu 16.04 LTS x64
安装haproxy之前,需要安装pcre, zlib等等
1:安装开发工具
apt-get install build-essential
2:安装pcre
apt-get install libpcre3 libpcre3-dev
3:安装zlib
apt-get install zlib1g zlib1g-dev
安装haproxy
wget https://github.com/haproxy/haproxy/archive/v1.6.0.tar.gz
tar -xvf haproxy-1.6.0.tar.gz
cd haproxy-1.6.0
make TARGET=linux2628 USE_PCRE=1 USE_ZLIB=1 ARCH=x86_64
make PREFIX=/usr/local/haproxy install
注意:make的一些参数说明,可以去https://github.com/haproxy/haproxy上面了解
配置haproxy
haproxy的配置文件haproxy.cfg在解压后的examples目录里面有例子,直接拷贝一个修改即可
cd /usr/local/haproxy
mkdir conf
vim haproxy.cfg 输入如下内容
global maxconn 20000 ulimit-n 80012 log 127.0.0.1 local0 nbproc 1 daemon defaults timeout server 5000 timeout client 5000 timeout connect 5000 #haproxy管理页面 frontend stats bind *:9061 mode http stats refresh 5s stats uri /stats #http代理,这里演示代理tomcat frontend txmall.com bind *:8060 mode http log global maxconn 8000 default_backend tomcat backend tomcat mode http retries 2 balance roundrobin server s1 192.168.1.200:8080 server s2 192.168.1.201:8081 #tcp代理,这里演示代理mysql listen mysql bind *:3306 mode tcp server m1 192.168.1.100:3306 server m2 192.168.1.101:3306
程序里面就可以直接连接haproxy的3306端口
最后,启动haproxy
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
启动之后,就可以访问 http://127.0.0.1:9061/stats 查看haproxy的管理页面