热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

20210727haproxy的集群搭建

理论一,haproxy的基础web集群调度分为软件和精简,之前lvs,hopoxy,nginx等,硬件是F5

理论

一,haproxy的基础
web集群调度分为软件和精简,之前lvs,hopoxy,nginx等,硬件是F5,等
lvs的不足之处
lvs不支持正则表达,不能实现动静分离,对大型网站,lvs配置复制,维护成本高
haproxy是可以提供高性能,负载均衡,以及tcp和http应用的代理软件
使用与负载特别大的we站点,运行在当前的硬件上课支持数以万计的并发连接请求

haproxy的调度算法

Haproxy支持多种调度算法,最常用的有三种:RR(Round Robin),LC(Least Connections),SH(Source Hashing)
1,RR
rr算法是最简单,最常用的算法,轮询调度,几个站点轮流分配
2,LC
LC算法是最小连接数算法,根据后端节点连接数动态分配请求
3,SH
SH基于来源范文调度算法,用于一些有session会话记录在服务器的场景,基于来源的ip。COOKIE等做集群调度

haproxy搭建

1,环境
需要两天nginx服务器
一台 haproxy服务器
三台服务器在同一个网段

[root@manager ~]# systemctl stop firewalld
[root@manager ~]# setenforce 0
[root@manager ~]# ntpdate ntp.aliyun.com
27 Jul 14:28:47 ntpdate[34361]: adjust time server 203.107.6.88 offset 0.001978 sec

2,haproxy的安装和启动

第一步,解压tar包`

[root@localhost ~]# cd /opt
[root@localhost opt]# rz -E
rz waiting to receive.
[root@localhost opt]# tar zxvf haproxy-1.5.19.tar.gz

第二步,安装环境

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

第三步,
cd haproxy-1.5.19/
make TARGET=linux2628 ARCH=x86_64
make install
在这里插入图片描述

第四步,配置文件

[root@localhost haproxy-1.5.19]# mkdir /etc/haproxy
[root@localhost haproxy-1.5.19]# ls
CHANGELOG CONTRIBUTING ebtree haproxy include Makefile ROADMAP SUBVERS VERDATE
contrib doc examples haproxy-systemd-wrapper LICENSE README src tests VERSION
[root@localhost haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/ 配置文件
[root@localhost haproxy-1.5.19]# cd /etc/haproxy
[root@localhost haproxy]# ls
haproxy.cfg
[root@localhost haproxy]# vim haproxy.cfg

在这里插入图片描述
#chroot /usr/share/haproxy
uid 99 #用户UID
gid 99 #用户GID
daemon #守护进程模式

defaults
log global #定义日志为global配置中的日志定义
mode http #模式为http
option httplog #采用http日志格式记录日志
option dontlognull #不记录健康检查日志信息
retries 3 #检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
redispatch #当服务器负载很高时,自动结束当前队列处理比较久的连接
maxconn 2000 #最大连接数
contimeout 5000 #连接超时时间
clitimeout 50000 #客户端超时时间
srvtimeout 50000 #服务器超时时间
在这里插入图片描述
第五,配置启动文件

[root@localhost haproxy]# cp /opt/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
[root@localhost haproxy]# cd /etc/init.d/
[root@localhost init.d]# ls
functions haproxy mysqld netconsole network README
[root@localhost init.d]# chmod +x haproxy
[root@localhost init.d]# ls
functions haproxy mysqld netconsole network README
[root@localhost init.d]# chkconfig --add /etc/init.d/haproxy
[root@localhost init.d]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@localhost init.d]# service haproxy start

在这里插入图片描述
三,在另外两天服务器上安装nginx

详情请见之前的nginx安装

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

总结:

1,haproxy是一个可以通过搞可用性,搞负载均衡,以及基于tcp和http的代理的软件,主要有三种调度方式,rr,lc ,sh。haproxy是工作在七层上的,在负载均衡和出来并发的速度上由于nginx,能够补充nginx的一些缺点
2,lvs和haproxy的区别,lvs在企业应用中抗负载能力强,但是存在不足,lvs不支持正则表达,不能动静分离,复杂,维护成本高,而,haproxy是一块可提高可用性,负载均衡以及基于tcp和http的应用代理软件,支持高并发,基于端口的检查。
3,在配置安装中,make中指定诶和版本和系统的位数,其次在主配置文件配置日志记录和listen的内容,指定算法策略,和分配的服务器ip以及端口号。


推荐阅读
  • Nginx不仅是一款轻量级的高性能Web服务器,还具备出色的负载均衡和反向代理功能。它支持复杂的正则匹配规则、动静内容分离以及灵活的URL重写功能,使得配置和管理更加便捷高效。此外,Nginx提供了多种负载均衡算法,如轮询、加权轮询、最少连接数等,以满足不同应用场景的需求。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 2021年Java开发实战:当前时间戳转换方法详解与实用网址推荐
    在当前的就业市场中,金九银十过后,金三银四也即将到来。本文将分享一些实用的面试技巧和题目,特别是针对正在寻找新工作机会的Java开发者。作者在准备字节跳动的面试过程中积累了丰富的经验,并成功获得了Offer。文中详细介绍了如何将当前时间戳进行转换的方法,并推荐了一些实用的在线资源,帮助读者更好地应对技术面试。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 求助:在CentOS 5.8系统上安装PECL扩展遇到问题
    在 CentOS 5.8 系统上尝试安装 APC 扩展时遇到了问题,具体表现为 PECL 工具无法正常工作。为了确保顺利安装,需要解决 PECL 的相关依赖和配置问题。建议检查 PHP 和 PECL 的版本兼容性,并确保所有必要的库和开发工具已正确安装。此外,可以尝试手动下载 APC 扩展的源代码并进行编译安装,以绕过 PECL 工具的限制。 ... [详细]
  • 本文对常见的字符串哈希函数进行了全面分析,涵盖了BKDRHash、APHash、DJBHash、JSHash、RSHash、SDBMHash、PJWHash和ELFHash等多种算法。这些哈希函数在不同的应用场景中表现出各异的性能特点,通过对比其算法原理、计算效率和碰撞概率,为实际应用提供了有价值的参考。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • 在 CentOS 6.6 系统中搭建 MONO 和 Jexus 以支持 ASP.NET 及 MVC 应用的运行环境配置指南
    本文提供了在 CentOS 6.6 系统上配置 MONO 和 Jexus 以支持 ASP.NET 及 MVC 应用的详细步骤。首先,确保本机环境为 CentOS 6.6,并使用阿里云的 YUM 源来安装必要的软件包,包括 gcc、gcc-c++、bison、pkgconfig 和 glib2-devel。这些软件包是构建和运行 MONO 环境的基础,确保系统能够顺利支持 ASP.NET 和 MVC 应用的部署和运行。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • ECharts 官方提供了丰富的图表示例,但实际项目中往往需要从后端动态获取数据。本文将详细介绍如何从后端获取数据并将其转换为 ECharts 所需的 JSON 格式,以实现动态饼图的展示。 ... [详细]
  • 探讨Redis的最佳应用场景
    本文将深入探讨Redis在不同场景下的最佳应用,包括其优势和适用范围。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
author-avatar
砖头资源
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有