haproxy配置

系统原理分析架构-六-负载均衡(定义及介绍及LVS/Nginx/Haproxy比较)

强颜欢笑 提交于 2020-04-07 03:44:01
负载均衡定义: 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都 具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某 种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器 上,而接收到请求的服务器独立地回应客户的请求。 均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据, 解决大量并发访问服务问题。这种 群集技术 可以用最少的投资获得接近于大型 主机的性能。 这种技术可以运用在流量拥塞时、访问路径过长、网民数量大增、运行这种系统负载、大大的提高了系统的可靠性、负载均衡技术解决网络拥塞的问题、处理大量并发的访问服务能力、提高服务器的响应速度、为用户提供更好的访问质量。所以说负载均衡是智能化、高性能、灵活性的技术。 设计思想: 一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。但若能将多台这样的服务器组成一个系统,并通过相关技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是 负载均衡 最初的基本设计思想。 负载均衡的几种实现技术: http重定向: 当http代理(比如浏览器)向web服务器请求某个URL后,web服务器可以通过http响应头信息中的Location标记来返回一个新的URL

haproxy+keepalived实现高可用负载均衡

亡梦爱人 提交于 2020-03-30 19:37:58
https://www.cnblogs.com/daixiang/p/5575477.html 一、haproxy介绍:   HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。HAProxy实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。   在linux内核版本为2.6或打了epoll补丁的linux2.4上运行haproxy能获得其最好的性能。 二、keepalived介绍:     keepalived理论工作原理       keepalived可提供vrrp以及health-check功能,可以只用它提供双机浮动的vip

Haproxy+Keepalived(双机热备)搭建高可用web架构

旧时模样 提交于 2020-03-23 23:05:08
1、目的 搭建web高可用架构,用haproxy作为前段负载均衡分摊后端web服务器压力,Keepalived保证haproxy的存活(双机热备:一台haproxy挂了,自动切换到另外一台haproxy上) 2、环境(系统均为centos7,防火墙与selinux都关闭) 192.168.0.100:web1(端口7000)、web2(端口8000) 192.168.0.101:haproxy1、keepalived(MASTER) 192.168.0.102:haproxy2、keepalived(BACKUP) 虚拟ip(VIP):192.168.0.11(端口8600) 3、搭建web1与web2 在192.168.0.100上安装docker,运行两个容器分别是web1与web2 4、分别在master和backup节点上安装haproxy与keepalived 直接yum安装,过程省略。。。 5、配置haproxy(在master与backup节点配置相同) 编辑配置文件/etc/haproxy/haproxy.cfg 在最后添加后端web主机的访问地址 backend webapp balance roundrobin server web1 192.168.0.101:7000 check inter 2000 fall 3 weight 1 server web2

每日进步一点点:解读消息中间件—RabbitMQ(集群原理与搭建篇)

亡梦爱人 提交于 2020-03-17 22:51:53
摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理 一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。 对于RabbitMQ这么成熟的消息队列产品来说,搭建它并不难并且也有不少童鞋写过如何搭建RabbitMQ消息队列集群的博文,但可能仍然有童鞋并不了解其背后的原理,这会导致其遇到性能问题时无法对集群进行进一步的调优。本篇主要介绍RabbitMQ集群方案的原理,如何搭建具备负载均衡能力的中小规模RabbitMQ集群,并最后给出生产环境构建一个能够具备高可用、高可靠和高吞吐量的中小规模RabbitMQ集群设计方案。 一、RabbitMQ集群方案的原理 RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现)。因此,RabbitMQ天然支持Clustering。这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样通过ZooKeeper分别来实现HA方案和保存集群的元数据。集群是保证可靠性的一种方式

SaltStack实践案例一

浪子不回头ぞ 提交于 2020-03-17 18:49:14
某厂面试归来,发现自己落伍了!>>> 通过SaltStack的配置管理来实现一个“中小型web架构”的自动化部署和配置管理,主要包括以下功能和服务: 系统初始化 Haproxy服务 Keepalived服务 Nginx服务 PHP(FastCGI)服务 Memcached服务 按照本案例的思路,我们将按照系统初始化、功能模块化、业务模块这样的设计思路来进行设计和实施: 系统初始化:指操作系统安装完毕之后,需要使用到的初始配置,比如安装监控代理、调整内核参数、设置域名解析等 功能模块:指的是生产用到的应用,比如Nginx、PHP、Haproxy、Keepalived等这类应用服务的安装和管理,每一个功能完美创建一个目录来存放,我们把这个目录的集合称之为“功能模块” 业务模块:在功能模块中我们编写了大量基础的功能状态,在业务层面直接进行引用,所以功能模块就是尽可能的全、而且独立。而业务模块,不同的业务类型就可以在Include功能模块里面的安装和部署,每个业务使用自己独特的配置文件等。最终在top.sls里面我们只需要给某个Minion指定一个业务的状态即可。 一、环境规划 环境规划包含实验环境规划SaltStack环境。 1.实验环境: salt-master-1.example.com 10.0.241.122 Master salt-minion-1.example.com 10

Nginx、LVS及HAProxy负载均衡软件的优缺点

五迷三道 提交于 2020-03-11 03:52:36
负载均衡 (Load Balancing) 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力,同时能够提高网络的灵活性和可用性。 Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件。 (1)一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的;大型网站或重要的服务,且服务器比较多时,可以考虑用LVS。 (2)一种是通过硬件来进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用;另外一种就是类似于Nginx/LVS/HAProxy的基于 Linux的开源免费的负载均衡软件,这些都是通过软件级别来实现,所以费用非常低廉。 (3)目前关于网站架构一般比较合理流行的架构方案:Web前端采用Nginx/HAProxy+ Keepalived作负载均衡器;后端采用 MySQL数据库一主多从和读写分离,采用LVS+Keepalived的架构。当然要根据项目具体需求制定方案。 下面说说各自的特点和适用场合

haproxy反向代理

◇◆丶佛笑我妖孽 提交于 2020-03-09 19:08:21
haproxy是个高性能的tcp和http的反向代理。它就是个代理。不像nginx还做web服务器 官网地址为www.haproxy.org nginx的优点和缺点 优点: 1、web服务器,应用比较广泛,大家都会 2、可以作为7层负载均衡,location设置复杂的基于HTTP的负载均衡 3、性能强大,网络依赖小 4、安装配置简单 缺点: 1、健康检查单一,不支持基于url的健康检查(可以使用第三方插件实现) 2、负载均衡算法少 3、不能动态管理,比如踢出某个web节点,需要reload配置 4、没有集群upstream的状态页面    haproxy的优点和缺点 优点: 1、专门做反向代理负载均衡 2、负载均衡算法比较多,大于等于8种,比nginx丰富 3、性能不低于nginx,大于等于nginx 4、支持动态管理,通过和haproxy的sock进行通信,可以进行管理 5、有比较丰富的Dashboard的页面,监控方便。有管理页面 6、比较强大的7层反向代理功能,在7层方便,功能强大 7、会话保持比nginx丰富。可以基于cookie和源IP(nginx也能做到基于IP和cookie) 缺点: 配置没有Nginx简单(相对熟悉)    先杀掉原先的nginx进程,防止80端口被占用,导致haproxy无法启动 [root@linux-node1 conf]# pkill

Web服务器群集——Haproxy搭建Web群集

隐身守侯 提交于 2020-03-04 15:29:32
Haproxy搭建Web群集 对Haproxy以及部署环境的了解 Haproxy是一种比较流行的调度工具 Haproxy与LVS、Nginx比较 LVS:LVS性能最好,抗负载能力强,但是配置起来较复杂 Nginx:对群集节点健康检查功能不强,性能没有Haproxy好,安装配置简单,测试方便,但是仅支持http和emil的调度 Haproxy:性能比Nginx好,支持url检测后端的服务器(mysql服务器超过10台不如LVS) 算法(跟LVS一样) rr (轮询):调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载 wrr (加权轮询):调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求,这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值 lc (最少连接):调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上,如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载 wlc (加权最少连接):在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载

Ubuntu编译安装HAprox+Keepalived+MySQL负载高可用架构(结合Docker容器配置)

百般思念 提交于 2020-03-01 12:34:27
系统环境:Ubuntu16.04(Docker容器) 架构环境: Keepalived/HAproxy MASTER: 172.17.0.4 Keepalived/HAproxy BACKUP: 172.17.0.6 MySQL MASTER: 172.17.0.2 MySQL SLAVE: 172.17.0.3 HAproxy版本:haproxy-2.0.8.tar.gz Keepalived版本:keepalived-2.0.19.tar.gz 一、安装HAproxy(MASTER/BACKUP两台都要装) 1、前往官网 https://www.haproxy.org/ 下载HAproxy 解压,进入haproxy-2.0.8目录 vim INSTALL;查看安装说明 2、编译安装HAproxy (1)编译 报错1:bash: make: command not found 我直接用docker容易,make命令没安装,安装一下: apt-get -y install make 然后执行: make -j 2 TARGET=generic USE_GZIP=1 报错2:/bin/sh: 1: gcc: not found 未安装gcc,安装gcc: apt-get -y install gcc 然后再执行: make -j 2 TARGET=generic USE_GZIP=1

RabbitMQ 消息中间件

允我心安 提交于 2020-02-26 22:03:58
1、消息中间件 1、简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可以在分布式环境下扩展进程的通信。 当下主流的消息中间件有RabbitMQ、Kafka、ActiveMQ、RocketMQ等。其能在不同平台之间进行通信,常用来屏蔽各种平台协议之间的特性,实现应用程序之间的协同。优点在于能够在客户端和服务器之间进行同步和异步的连接,并且在任何时刻都可以将消息进行传送和转发,是分布式系统中非常重要的组件,主要用来解决应用耦合、异步通信、流量削峰等问题。 2、作用 1、消息中间件主要作用 解耦 冗余(存储) 扩展性 削峰 可恢复性 顺序保证 缓冲 异步通信 2、消息中间件的两种模式 1、P2P模式 P2P模式包含三个角色:消息队列(Queue)、发送者(Sender)、接收者(Receiver)。每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到它们被消费或超时。 P2P的特点: 每个消息只有一个消费者(Consumer),即一旦被消费,消息就不再在消息队列中 发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行它不会影响到消息被发送到队列 接收者在成功接收消息之后需向队列应答成功