一、LB解决方案及Haproxy介绍
硬件:F5:BIG IP 、Citrix:Netscaler 、A10:A10 、Redware
软件:4 layer: lvs 、haproxy(mysql)
7 layer: httpd(+tomcat)
nginx、
haproxy(http)
缓存:varnish,squid
ats(apache traffic server)
常用的lvs,nginx,haproxy
LVS是内核中的模块,在内核中完成调度(理想情况并发400W),但lvs不知道后端的资源是什么不能实现动静分离。
Nginx,Haproxy是运行在用户空间的进程,使用反向代理机制(重新封装数据请求向后端转发)(理想情况Nginx 5W,官方10W,通常2W;Haproxy并发3W),它能实现动静分离,这是企业中用多级代理的原因。
Haproxy是免费、极速可靠的用于tcp和基于http应用程序提供高可用、负载均衡和代理服务的解决方案,尤其适用于高负载且需要持久连接或7层处理机制的web站点。
二、Haproxy的配置
@ 实验环境:三台服务器
node1:haproxy 2块网卡(桥接 eth0:172.16.100.7,vnet3 eth1:192.168.21.1/24)
node2:web1 1块网卡(vnet3 eth0:192.168.21.12)
node3:web2 1块网卡 (vnet3 eth0:192.168.21.13)
(1)分别在web1、web2上创建网页文件node2.mageedu.com和node3.mageedu.com
如 #vim /var/www/html/index.html
node1.mageedu.com
重启httpd服务,测试网页正常
(2)安装haproxy
#yum list haporxy
#yum install -y haproxy
#vi /etc/haproxy/haproxy.cfg (修改日志参数)或新建一个配置文件
frontend main *:80
default_backend webservers
backend webservers
balance roundrobin
server s1 192.168.21.13:80
server s2 192.168.21.14:80
#service haproxy start
客户访问172.16.100.7 测试ok。
@ haproxy的配置说明
global settings:全局配置
主要用于定义haproxy进程自身的工作特性
proxies:代理配置段
backend:后端服务器组
frontend:定义面向客户的监听的地址和端口,以及关联到后端服务器组;
listen:(相当于backend+frontend)组合方式直接定义frontend及backend的一种机制;
defaults:定义默认配置
frontend <name> ip:port
use_backend
default_backend
backend <name>
balance <scheduier>指明调度算法
server <name> ip:port
listen <name> ip:port
balance
server
server
defaults