一、HAProxy简介
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作
二、拓扑
HAProxy的配置:
配置开启HAProxy的路由转发功能
#vi /etc/sysctl.conf net.ipv4.ip_forward = 1 # sysctl -p //执行后看到如下信息 net.ipv4.ip_forward = 1 #sysctl -a | grep ip_forward //执行后确保看到如下信息即可 net.ipv4.ip_forward = 1
2.配置HAProxy的负载均衡
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # turn on stats unix socket stats socket /var/lib/haproxy/stats defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 #--------------------------------------------------------------------- # main frontend which proxys to the backends #--------------------------------------------------------------------- frontend server 192.168.192.194:80 //HAProxy监听在192.168.192.194 80端口 default_backend app #--------------------------------------------------------------------- # static backend for serving up images, stylesheets and such #--------------------------------------------------------------------- backend app balance roundrobin server app1 192.168.112.130:80 check weight 1 server app2 192.168.112.131:80 check weight 1
3.WEB服务器配置,配置192.168.112.130和131即可,网关无需指向HAProxy,走7层代理,WEB服务器看到得源IP为HAProxy的192.168.112.x的访问。
4. 测试
本文出自 “Lu2Yu” 博客,请务必保留此出处http://lu2yu.blog.51cto.com/10009517/1623763
原文:http://lu2yu.blog.51cto.com/10009517/1623763