Haproxy搭建Web集群

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

目录

一、什么是HAproxy

二、HAproxy特性

三、HAproxy负载均衡策略

四、LVS、nginx、HAproxy的区别

五、HProxy集群数据流向

5.1数据流向图

五、Haproxy搭建Web集群

5.1haproxy 服务器部署

5.2节点服务器部署

5.3测试 Web群集


一、什么是HAproxy

HAProxy是可提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,是免费、快速并且可靠的一种解决方案。HAProxy非常适用于并发大(并发达1w以上)web站点,这些站点通常又需要会话保持或七层处理。HAProxy的运行模式使得它可以很简单安全的整合至当前的架构中,同时可以保护web服务器不被暴露到网络上。

  • ·适用于负载大的Web站点
  • 运行在硬件上可支持数以万计的并发连接的连接请求

二、HAproxy特性

  1. 可靠性和稳定性非常好,可以与F5负载均衡相媲美。
  2. 可同时维护40000-50000个并发量,在单位中一般处理20000个并发量连接。
  3. 支持多种负载均衡算法,支持会话保持。
  4. 支持虚拟机功能,从而实现Web负载均衡更加的灵活。
  5. 支持连接拒绝,全透明代理等独特功能。
  6. 拥有强大的ACL支持,用于访问控制
  7. 有独特的弹性二叉数据结构,使数据结构的复杂性到0(1),即数据的查录速度不会随数据条数的增加而速度有所下降。
  8. 支持客户端的keepalive功能,减少客户端与haproxy的多次三次握手导致资源浪费,让多个请求在一个tcp连接中完成;
  9. 支持TCP加速,零复制功能,类似于mmap机制;
  10. 支持响应池(response buffering);
  11. 支持RDP协议;
  12. 基于源的粘性,类似nginx的ip_hash功能,把来自同一客户端的请求在一定时间内始终调度到上游的同一服务器;
  13. 更好统计数据接口,其web接口显示后端集群中各个服务器的接收、发送、拒绝、错误等数据的统计信息;
  14. 详细的健康状态检测,web接口中有关于对上游服务器的健康检测状态,并提供了一定的管理功能;
  15. 基于流量的健康评估机制;
  16. 基于http认证;
  17. 基于命令行的管理接口;
  18. 日志分析器,可对日志进行分析。

三、HAproxy负载均衡策略

HAProxy负载均衡策略非常多,常见的有如下8种:

(1) roundrobin,表示示简单的轮询。

(2) static-rr,表示根据权重。

(3) leastconn,表示最少连接者先处理。

(4)source,表示根据请求源IP

(5)uri,表示根据请求的URI,做cdn需使用;

(6)url_param,表示根据请求的URI参数  'balance url param'  requires anURI parameter name

(7) hdr (name),表示根据HTTP请求头来锁定每一次HTTP请求;

(8) rdp-cookie(name),表示根据cookie(name)来锁定并哈希每一次TCP请求

四、LVS、nginx、HAproxy的区别

  • IVS基于Linux操作系统内核实现软负载均衡,而HAProxy和nginx是基于第三方应用实现的软负载均衡;
  • IVS是可实现4层的IP负载均衡技术,无法实现基于目录、URL的转发。而HAProxy和Nginx都可以实现4层和7层技术,HAProxy可提供TCP和HTTP应用的负载均衡综合解决方案;
  • LVS因为工作在ISo模型的第四层,其状态监测功能单一,而HAProxy在状态监测方面功能更丰富、强大,可支持端口、URI、脚本等多种状态检测方式:
  • HAProxy功能强大,但整体性能低于4层模式的LVS负载均衡。oNginx主要用于web服务器或缓存服务器。
  • Nginx的upstream模块虽然也支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy好。
nginx LVS HAproxy
支持正则表达 只能基于四层端口转发 支持8中负载均衡策略
只支持基于端口的健康检查 尽在四层做分发作用 抗负载能力强 仅作负载均衡软件使用,在高并发情况下性能优于nginx
不支持session直接保持、但能通过ip_hash来解决 应用范围广 支持URL检测 支持session保持
对网络稳定性要求不高
反向代理能力强

五、HProxy集群数据流向

5.1数据流向图

Haproxy搭建Web集群,服务器,运维

五、Haproxy搭建Web集群

Haproxy服务器:192.168.14.101

Nginx 服务器1:192.168.14.102

Nginx 服务器2:192.168.14.103

客户端:192.168.14.1

5.1haproxy 服务器部署


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.14.102:80 check inter 2000 fall 3		#定义在线节点
        server inst2 192.168.14.103: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

5.2节点服务器部署

Nginx 服务器1:192.168.14.102

Nginx 服务器2:192.168.14.103

systemctl stop firewalld
setenforce 0

yum install -y pcre-devel zlib-devel gcc gcc-c++ make 

useradd -M -s /sbin/nologin nginx

cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/

cd nginx-1.12.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install

make && make install

--192.168.14.102---
echo "this is kgc web" > /usr/local/nginx/html/test.html

--192.168.14.103---
echo "this is benet web" > /usr/local/nginx/html/test.html

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

nginx      #启动nginx 服务

5.3测试 Web群集

在客户端使用浏览器打:http://192.168.14.101/test.html

Haproxy搭建Web集群,服务器,运维

点击刷新后的结果

 Haproxy搭建Web集群,服务器,运维

 文章来源地址https://www.toymoban.com/news/detail-549431.html

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

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

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

相关文章

  • 【树莓派烤肉 001】从 0 开始用自己的树莓派搭建服务器:运维篇

    没错,我承认这个标题写的很好吃…… 话说我家里那只树莓派 4B 8GB 放了两年了,除了吃灰还是吃灰~ 于是我想用它做一些非同寻常的事情,比如搭服务器。之前建网站都是用的 GitHub Pages,这次我们整个真实的 LAMP 环境。话不多说,下面开始搭建运行环境~ (不用担心树莓派

    2024年02月09日
    浏览(39)
  • ubuntu服务器版本搭建Hadoop集群

    实验环境: 虚拟化软件:VMware® Workstation 16 Pro 镜像:ubuntu-22.04.2-live-server-amd64.iso Hadoop版本:hadoop-3.3.4.tar.gz ubuntu镜像链接 hadoop文件链接 配置虚拟机 (1)新建虚拟机,选择实验镜像【ubuntu-22.04.2-live-server-amd64.iso】 (2)调整硬件配置,配置如图 安装操作系统 (1)选择虚拟

    2024年02月08日
    浏览(53)
  • 搭建web服务器和NFS服务器

    网站需求: 1.基于域名www.openlab.com可以访问网站内容为 welcome to openlab!!! 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于www.openlab.com/student/ 网站访问学生信息,www.openlab.com/data/网站访问教学资料www.openlab.com/money/网站访问缴费网站。 3.要求 (1)学生

    2024年01月23日
    浏览(52)
  • 搭建web服务器

    1.要求搭建web服务器,能够访问到网页内容为“小胖,你咋这么胖呢!” 2.要求搭建web服务器,创建基于域名的虚拟主机,能够使用www.xiaopang.com和www.dapang.com访问各自的网站网站存放路径分别为/xiaopang和/dapang,内容自定。 配置yun源:  安装软件包 添加成功后重启服务端:

    2024年02月09日
    浏览(51)
  • Nginx(7)Nginx实现服务器端集群搭建

    前面课程已经将Nginx的大部分内容进行了讲解,我们都知道了Nginx在高并发场景和处理静态资源是非常高性能的,但是在实际项目中除了静态资源还有就是后台业务代码模块,一般后台业务都会被部署在Tomcat,weblogic或者是websphere等web服务器上。那么如何使用Nginx接收用户的请

    2024年02月09日
    浏览(55)
  • Linux服务器集群-大数据基础环境搭建指南

    本文将构建三台Linux服务器(node1、node2、node3),通过相关配置,搭建出一个Linux服务器集群环境适用于大数据的开发学习。 本文使用的VMware版本为:VMware16; 本文环境搭建使用到的Linux发行版本为:CentOS7; 本文的电脑操作环境为:windows11。 首先,需要根据之前发文中的流程

    2024年02月07日
    浏览(60)
  • Web 服务器的搭建

    目录 1.web的简介 2.搭建web服务器实现访问网站 2.1 环境准备 2.2搭建http服务 2.3搭建https服务 1.1什么是web      Web(全称为World Wide Web)是一种基于互联网的信息交流和共享方式。它是由许多相互连接的网页组成的系统,这些网页包含了文本、图像、音频、视频和其他形式的多媒

    2024年02月21日
    浏览(37)
  • 基于slurm框架的GPU服务器集群搭建方法

    1. 环境基础 2. 环境配置 2.1 hostname配置 2.2 关闭SELinux (master, slave) 2.3 关闭Firewall (master, slave) 2.4 配置ip与hostname映射关系 (master, slave1) 3. 创建munge和slurm用户 (master, slave) 4. 安装munge 4.1 下载munge及依赖包 (master, slave) 4.2 生成munge.key并发送到各计算节点 (master) 4.3 修改

    2024年02月05日
    浏览(55)
  • 三台Windows服务器搭建RabbitMq集群及镜像队列

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 消息中间件-RabbitMq集群搭建及镜像队列 (高可用性、一台宕机自动切换另一台) ,镜像队列是基于普通的集群模式的 提示:以下是本篇文章正文内容,下面案例可供参考 RabbitMQ是实现了高级消息队列协议

    2024年02月01日
    浏览(52)
  • WEB服务器搭建与配置

    # 目前最主流的三个Web服务器是Apache、Nginx、 IIS。 - Web服务器一般指网站服务器,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。 - WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 - 服

    2024年02月04日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包