目录
一、常规Web集群调度器
HAproxy概念(主要特性)
HAproxy负载均衡八种策略
二、LVS、Nginx、HAproxy区别
Nginx服务
LVS服务
HAproxy服务
三、部署HAproxy + Nginx负载均衡集群
第一步 关闭防火墙和安全机制
第二步 安装依赖环境
第三步 导入相关服务包并解压
第四步 编译
第五步 编译安装
第六步 优化配置文件路径
第七步 修改配置文件
第八步 添加haproxy系统服务
第九步 启动服务
第十步 部署节点服务器
第十一步 创建服务程序用户
第十二步 安装依赖环境
第十三步 导入相关服务包并解压
第十四步 编译安装
第十五步 编译并安装
第十六步 部署第二台Web节点服务
第十七步 创建第一台Web网页执行文件
第十八步 创建第二台Web网页执行文件
第十九步 优化Web服务路径
第二十步 启动服务
第二十一步 修改Web节点服务器网页直接文件路径
第二十二步 用浏览器访问测试
一、常规Web集群调度器
软件通常使用开源的LVS、HAproxy、Nginx等
硬件设备就是物理服务器,上面至少有四个以上的网关,连接各个物理服务器的心跳线是同一网段
HAproxy概念(主要特性)
可靠性和稳定性非常好,可以与硬件级的F5负载均衡设备相媲美
最高可以同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个,最大处理能力可达10Git/s
支持多达八种负载均衡算法,也支持会话保持
基于流量的健康评估机制,基于HTTP认证
基于命令行的管理接口,有日志分析器,可以对日志进行分析
有强大的ACL支持,用于访问控制(黑白名单)
支持虚拟主机的功能,从而实现Web负载均衡更加灵活
HAproxy负载均衡八种策略
① Roundrobin #表示简单的轮询
② static-rr #表示根据权重
③ leastconn #表示最少连接者先处理
④ source #表示根据请求源IP地址
⑤ uri #表示根据请求的URI,做cdn需要使用
⑥ uri_param #表示根据请求的URL参数“Balance url_param”
request an URL parameter name
⑦ hdr(name) #表示根据HTTP请求头来锁定每一次HTTP请求
⑧ rdp-cookie(name) #表示根据cookie(name)来锁定并hash每一次的TCP请求
二、LVS、Nginx、HAproxy区别
① LVS基于Linux操作系统内核实现软负载均衡,而HAproxy和Nginx是基于第三方应用实现的软负载均衡
② LVS是可实现4层的IP负载均衡技术,无法实现基于目录,URL的转发,而HAproxy和Nginx都可以实现4层和7层技术,HAproxy可以提供TCP和HTTP引用的负载均衡综合解决方案
③ LVS因为工作在ISO模型的第四层,其状态检测功能单一,而HAproxy在状态检测方面功能更丰富、强大、可支持端口、URL、脚本等多种状态检测方式
④ HAproxy功能强大,但整体性能低于4层模式的LVS负载均衡
⑤ Nginx主要用于Web服务器或者缓存服务器,Nginx的upstream模块虽然也支持集群功能,但对集群节点健康检查功能不强,性能没有HAproxy强
Nginx服务
① 支持正则表达式
② 不支持session直接保持、但能通过IP_hash来解决
③ 只支持基于端口的健康检查
④ 对网络稳定性要求不高
⑤ 反向代理能力强
LVS服务
① 只能基于四层端口转发
② 应用范围广
③ 仅在四层做分发作用,抗负载能力强
HAproxy服务
① 支持八种负载均衡策略
② 支持URL检测,支持session保持
③ 反作负载均衡软件使用,在高并发情况下性能优于Nginx
三、部署HAproxy + Nginx负载均衡集群
第一步 关闭防火墙和安全机制
命令:systemctl stop firewalld
setenforce 0
第二步 安装依赖环境
命令:yum -y install pcre-devel bzip2-devel gcc gcc-c++ make
第三步 导入相关服务包并解压
命令:tar xf [服务包名]
第四步 编译
命令:make TARGET=linux2628 ARCH=x86_64
第五步 编译安装
命令:make install
第六步 优化配置文件路径
命令:cp /opt/haproxy-1.5.19/examples/haproxy.cfg /etc/haproxy
第七步 修改配置文件
命令:vim /etc/haproxy
第八步 添加haproxy系统服务
命令:cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
chmod 777 /etc/init.d/haproxy
chkconfig --add /etc/init.d/haproxy
ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
第九步 启动服务
命令:systemctl start haproxy
第十步 部署节点服务器
先关闭防火墙和安全机制
第十一步 创建服务程序用户
命令:useradd -M -s /sbin/nologin nginx
第十二步 安装依赖环境
命令:yum -y install pcre-devel zlib-devel gcc gcc-c++ make
第十三步 导入相关服务包并解压
命令:tar xf /opt/nginx-1.12.0.tar.gz
第十四步 编译安装
命令:./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
第十五步 编译并安装
命令:make -j4 && make install
第十六步 部署第二台Web节点服务
第十七步 创建第一台Web网页执行文件
命令:echo "Web is liu" > /usr/local/nginx/html/text/html
第十八步 创建第二台Web网页执行文件
命令:echo "Web is fang" > /usr/local/nginx/html/text/html
第十九步 优化Web服务路径
命令:ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
第二十步 启动服务
命令:nginx
第二十一步 修改Web节点服务器网页直接文件路径
命令:vim /usr/local/nginx/conf/nginx.conf