【LVS】4、HAProxy搭建web集群

这篇具有很好参考价值的文章主要介绍了【LVS】4、HAProxy搭建web集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目前常见的Web集群调度器分为软件和硬件

软件通常使用开源的LVS、Haproxy、Nginx

        LVS性能最好(基于内核转发),但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,高并发性能没有 Haproxy好

        硬件一般使用比较多的是F5(最多)、Array,也有很多人使用国内的一些产品,如梭子鱼、绿盟等

不在乎成本的公司会选择用硬件,更多的是采用软件

HAProxy介绍

LVS抗负载能力强,但不支持正则表达式、不能实现动静分离;大型网站,LVS实施配置复杂,维护成本相对较高;一般在上百台集群中使用

HAProxy是一款可提供高可用性和负载均衡,基于TCP(四层)和HTTP(七层)应用的代理的软件

适用于负载大的web站点,运行再硬件上,可以支持上万条并发连接的连接请求

HAProxy的主要特性

LVS在企业应用中抗负载能力强,但不支持正则表达式,不能实现动静分离;大型网站,配置复杂,维护成本高

HARoxy

HAProxy负载均衡的策略(8种)

(1)roundrobin,表示简单的轮询
(2)static-rr,表示根据权重
(3)leastconn,表示最少连接者先处理
(4)source,表示根据请求源IP
(5)uri,表示根据请求的URI,做cdn需使用;
(6)url_param,表示根据请求的URl参数'balance url_param' requires an URL parameter name
(7)hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
(8)rdp-cookie(name),表示根据cookie(name)来锁定并哈希每一次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
① 支持8中负载均衡策略
② 仅作负载均衡软件使用,在高并发情况下性能优于nginx
③ 支持URL检测  支持session保持

Haproxy搭建 Web 群集

Haproxy服务器:192.168.220.121  
Nginx 服务器1:192.168.220.111    
Nginx 服务器2:192.168.220.112  
客户端:192.168.220.10      

haproxy 服务器部署

1.关闭防火墙,将安装Haproxy所需软件包传到/opt目录下
systemctl stop firewalld
setenforce 0

cd /opt
上传haproxy-1.5.19.tar.gz
2.编译安装 Haproxy
yum install -y pcre-devel bzip2-devel gcc gcc-c++ make
tar zxvf haproxy-1.5.19.tar.gz
cd haproxy-1.5.19/
make TARGET=linux2628 ARCH=x86_64
make install

---------------------参数说明-----------------------------------
TARGET=linux26    #内核版本,
#使用uname -r查看内核,如:2.6.18-371.el5,此时该参数用TARGET=linux26;kernel大于2.6.28的用TARGET=linux2628

ARCH=x86_64     #系统位数,64位系统
----------------------------------------------------------------------------------------------------------

3.Haproxy服务器配置
mkdir /etc/haproxy
cp examples/haproxy.cfg /etc/haproxy/

cd /etc/haproxy/
vim haproxy.cfg

global		#全局配置,主要用于定义全局参数,属于进程级的配置,通常和操作系统配置有关
--4~5行--修改,定义haproxy日志输出设置和日志级别,local0为日志设备,默认存放到系统日志
        log /dev/log   local0 info		#修改
        log /dev/log   local0 notice	#修改
        #log loghost    local0 info
        maxconn 4096			#最大连接数,需考虑ulimit -n限制,推荐使用10240
--8行--注释,chroot运行路径,为该服务自设置的根目录,一般需将此行注释掉
        #chroot /usr/share/haproxy
        uid 99					#用户UID
        gid 99					#用户GID
        daemon					#守护进程模式
        nbproc 1				#添加,设置并发进程数,建议与当前服务器CPU核数相等或为其2倍

defaults   	#配置默认参数,这些参数可以被用到Listen,frontend,backend组件     
        log     global			#引入global定义的日志格式
        mode    http			#模式为http(7层代理http,4层代理tcp)
        option  httplog			#日志类别为http日志格式
        option  dontlognull		#不记录健康检查日志信息
        retries 3				#检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
        redispatch				#当服务器负载很高时,自动结束当前队列处理比较久的连接
        maxconn 2000			#最大连接数,“defaults”中的值不能超过“global”段中的定义
        #contimeout 5000        #设置连接超时时间,默认单位是毫秒
        #clitimeout 50000       #设置客户端超时时间,默认单位是毫秒
        #srvtimeout 50000       #设置服务器超时时间,默认单位是毫秒
        timeout http-request 10s 	#默认http请求超时时间
        timeout queue 1m   		#默认队列超时时间
        timeout connect 10s		#默认连接超时时间,新版本中替代contimeout,该参数向后兼容
        timeout client 1m		#默认客户端超时时间,新版本中替代clitimeout,该参数向后兼容
        timeout server 1m		#默认服务器超时时间,新版本中替代srvtimeout,该参数向后兼容
        timeout http-keep-alive 10s	#默认持久连接超时时间
        timeout check 10s		#设置心跳检查超时时间


--删除下面所有listen项--,然后添加
listen  webcluster 0.0.0.0:80	#haproxy实例状态监控部分配置,定义一个名为webcluster的应用
        option httpchk GET /test.html	#检查服务器的test.html文件
        balance roundrobin				#负载均衡调度算法使用轮询算法roundrobin
        server inst1 192.168.10.16:80 check inter 2000 fall 3		#定义在线节点
        server inst2 192.168.10.17:80 check inter 2000 fall 3

---------------------参数说明-----------------------------------
balance roundrobin        #负载均衡调度算法
#轮询算法:roundrobin;最小连接数算法:leastconn;来源访问调度算法:source,类似于nginx的ip_hash

check inter 2000        #表示启用对此后端服务器执行健康检查,设置健康状态检查的时间间隔,单位为毫秒连续三次检测不到心跳频率则认为该
fall 3                    #表示节点失效
若节点配置后带有“backup”表示该节点只是个备份节点,仅在所有在线节点都失效该节点才启用。不携带“backup”,表示为主节点,和其它在线节点共同提供服务。
----------------------------------------------------------------------------------------------------------

4.添加haproxy 系统服务
cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
chmod +x haproxy
chkconfig --add /etc/init.d/haproxy

ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
service haproxy start	或	/etc/init.d/haproxy start

节点服务器部署

【安装 Nginx 服务】(192.168.220.111、192.168.220.112)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
1、安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
2、创建运行用户
useradd -M -s /sbin/nologin nginx
3、编译安装
cd /opt
tar zxvf nginx-1.22.0.tar.gz -C /opt/

cd nginx-1.22.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

./configure --with-stream

make -j 4 && make install
4、优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
5、添加 Nginx 系统服务
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

6、赋权、启动Nginx服务

chmod 777 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
--192.168.220.111--
echo "this is H+N web1" > /usr/local/nginx/html/test.html
--192.168.220.112--
echo "this is H+N web2" > /usr/local/nginx/html/test.html

测试 Web群集

在客户端使用浏览器打开

http://192.168.220.121/test.html 

不断刷新浏览器测试负载均衡效果文章来源地址https://www.toymoban.com/news/detail-665183.html

到了这里,关于【LVS】4、HAProxy搭建web集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 集群、负载均衡集群、高可用集群简介,LVS工作结构、工作模式、调度算法和haproxy/nginx模式拓扑介绍

    目录 一.集群的定义 1.定义 2.分类 (1)负载均衡集群(LBC/LB) (2)高可用集群(HAC) 二.使用集群的意义 1.高性价比和性能比 2.高可用性 3.可伸缩性强 4.持久和透明性高 三.常见的两种集群模式拓扑 1.LVS(-DR)集群模式 (1)工作架构 (2)LVS下的相关术语 (3)LVS的工作模式

    2024年02月13日
    浏览(46)
  • 企业架构LB-服务器的负载均衡之LVS实现

    学习目标和内容 1、能够了解LVS的基本工作方式 2、能够安装配置LVS实现负载均衡 3、能够了解LVS-NAT的配置方式 4、能够了解LVS-DR的配置方式 #一、LVS介绍和安装 == LVS ==(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内

    2024年02月21日
    浏览(41)
  • web集群学习:基于CentOS 7构建 LVS-DR 群集并配置服务启动脚本

    目录 1、环境准备 2、配置lvs服务启动脚本 1、在RS上分别配置服务启动脚本 2、在lvs director上配置服务启动脚本 3、客户端测试 配置LVS-DR模式主要注意的有 1、vip绑定在RS的lo接口; 2、RS做arp抑制; VIP=192.168.95.10 RS1=192.168.95.11 RS2=192.168.95.12 网络接口:ens33 在两台RS上分别准备w

    2024年02月13日
    浏览(38)
  • LVS—DR集群的搭建

    目录 lvs-dr模式工作原理: 搭建结构: 1、RS: 1)两台RS准备好httpd环境和测试文件  2)添加虚拟IP(vip)、添加访问本地vip的静态路由 并抑制ARP  2、DS: 1)安装ipvasadm 2)配置虚拟IP(vip) 3) 添加服务 3、客户端访问:​编辑 首先,来自客户端计算机CIP的请求被发送到Directo

    2024年02月14日
    浏览(38)
  • LVS集群 (NET模式搭建)

    目录 一、集群概述 一、负载均衡技术类型 二、负载均衡实现方式 二、LVS集群结构 一、三层结构 二、架构对象 三、LVS工作模式 四、LVS负载均衡算法 一、静态负载均衡       二、动态负载均衡 五、ipvsadm命令详解 六、搭建实验流程 一、首先打开三台虚拟机 二、 新增网卡

    2024年02月11日
    浏览(32)
  • haproxy服务器对nginx服务器web服务调度负载均衡、用nfs做共享目录(脚本部署)

    目录 一、准备 二、在作为haproxy的服务器上导入以下shell执行haproxy安装 三、由于nginx服务需要用的nfs共享目录,先部署nfs 四、nginx服务器1部署 五、nginx服务器2部署同上 六、测试 一、准备 四台服务器 系统 IP 搭建服务器 centos7 192.168.1.12 haproxy centos7 192.168.1.132 nfs(rpcbind) ce

    2024年02月09日
    浏览(49)
  • WEB集群——LVS-DR 群集、nginx负载均衡

    1、基于 CentOS 7 构建 LVS-DR 群集。 2、配置nginx负载均衡。 LVS-DR(Linux Virtual Server Director Server) 名称 缩写 说明 虚拟IP地址(Virtual IP Address) VIP Director用于向客户端计算机提供服务的IP地址 真实IP地址(Real Server IP Address) RIP 在集群下面节点上使用IP地址 Director的IP地址(Director IP Add

    2024年02月13日
    浏览(48)
  • Nginx安装以及LVS-DR集群搭建

    yum insatall -y make gcc gcc-c++ pcre-devel #pcre-devel -- pcre库 #安装openssl-devel yum install -y openssl-devel tar -xf nginx-1.22.0.tar.gz -C /usr/local/ ln -s /usr/local/nginx-1.22.0/ /usr/local/nginx groupadd -r nginx useradd nginx -u 996 -r -g 996 -c \\\"nginx user\\\" node1 192.168.227.134 lsv服务器 node2 192.168.227.135 RS1 node3 192.168.227.137 RS2

    2024年02月13日
    浏览(44)
  • 基于lvs+keepalived+nginx的web高性能集群项目

    模拟企业里的web项目需求,最终目的是构建一个高性能高可用的web集群系统。部署lvs负载均衡系统和keepalived高可用软件,后端使用nginx做web服务器,同时搭建内部的一套基于prometheus的监控系统。使用ansible实现整个集群系统的自动化运维工作。 ceotos7 nginx1.25.3 node_exporter-1.4.0

    2024年02月20日
    浏览(56)
  • web集群学习--基于CentOS构建LVS-DR集群、配置nginx负载均衡

    环境准备 配置 1.关闭防火墙和SELinux 2.在node3和node4上安装httpd服务并配置默认访问页面 3.配置LVS负载均衡服务并增加两台RS 4.在node3和node4上绑定VIP并添加本机访问VIP的路由 5.抑制ARP响应 PS:也可以使用arptables实现抑制arp 6.测试访问VIP 至此,基于CentOS构建LVS-DR集群实验完成 环境

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包