部署HAproxy + Nginx负载均衡集群

news2024/11/17 11:24:39

目录

一、常规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

第二十二步 用浏览器访问测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/734433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于paddelOCR的车票识别以及在PCB板上应用

基于paddelOCR的车票识别 任务简介 车牌识别就是从图片或者视频中提取车牌信息 任务难点 尺度差异大,悬挂位置不固定;角度倾斜,图片模糊,光照不足,过曝等问题;边缘和端测场景应用对模型大小有限制&#…

C++之装饰器适配器模式

目录 一、装饰器模式 模式思想 模式简介 模式优点 模式缺点 代码实现 情景模拟 代码实现 运行结果 二、适配器模式 模式简介 介绍 优点 缺点 代码实现 情景模拟 一、装饰器模式 模式思想 模式简介 装饰器模式(Decorator Pattern)允许向…

前端基础(三十六):读取本地音视频设备并进行播放

效果 navigator.mediaDevices.enumerateDevices 请求媒体输入和输出设备的列表,例如麦克风,摄像机,耳机设备等 navigator.mediaDevices.getUserMedia 会提示用户给予使用媒体输入的许可,媒体输入会产生一个MediaStream&#xff0c…

伺服系统行业发展

伺服系统行业发展 1 介绍1.1 概述1.2 一般应用1.3 分类按系统功率分类按动力来源分类 1.4 工业控制中的伺服系统1.5 数字信号驱动与模拟信号驱动对比1.6 发展历史 2 伺服系统厂家工业机械臂移动AMR 3 关键指标及难点4 三相交流逆变器(直流电转换为交流电&#xff09…

创建 Code Interpreter Demo: 一次实践的探索

好消息,好消息,Code Interpreter可以测试使用了!!! 在这篇文章中,我们将探索如何创建一个 Code Interpreter Demo。提交一个2023年1-5月份的融资记录数据,让它来帮我们分析一下这些数据。 执行…

TCP 重传机制 滑动窗口 流量控制 拥塞控制 学习总结!

大家好,我是三叔,很高兴这期又和大家见面了,一个奋斗在互联网的打工人。 这篇博客主要记录 tcp 的基础知识的学习总结相关内容!备注:图片均来自作者:小林哥 tcp 的三大特性 tcp 大家都不陌生&#xff0c…

Python制作gif表情包生成工具,斗图再也不会输啦

在当前无表情包不会聊天的时代,怎么也不能输在表情包数量不足上啊,今天咱们就来制作一个 gif 生成工具,用来制作表情包也太好用啦 先来看看整体效果 技术交流 技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人…

如何解决PostgreSQL执行语句长时间卡着不动,不报错也不执行的问题?

1 问题现象 执行SQL语句,卡着不动,不成功也不执行,就像挂住了一样。 truncate table simple; 2 原因分析 一般来说,语句呈现卡着的状态,主要会是两种原因比较多, 原因1:SQL语句是一个耗时操…

Java8新特性——lambda表达式、函数式接口、方法引用、Stream API与Optional类

目录 一、lambda表达式 (一)lambda相关概念 (二)lambda示例 (三)lambda用法 1.语法格式一:无参,无返回值 2.语法格式二:有参数,无返回值 3.数据类型可以省略,因为可由编译器推断得出,称为”类型推断…

统计数据记录

分红20% 分红22% 分红25%

手把手教大家实现 npm 包,并发布 npm 仓库,搭建文档(二)

昨天写了第一篇文章,反响平平 一个 NPM 包,帮助数十万程序员提高数十倍效率,难道不开源出来?(一) 首先贴下我们的官网 【预览页】 https://kennana.github.io/toolkit-use/ 我们的推特 【toolkituse】 https://twitter.com/Toolkituse 我们的github 【toolkit-u…

实现一个周选择器组件

1、需求: 默认每个月的第一个周一为该月的第一周开始,规则如图所示 2、使用到的工具: vue2vant2momentjs 3、父组件: data中定义涉及到的参数 minDate: new Date(this.$moment().subtract(12,month)) maxDate: new Date(),…

OpenCV 入门教程:全局阈值处理

OpenCV 入门教程:全局阈值处理 导语一、全局阈值处理二、示例应用2.1 图像二值化2.2 图像去噪 总结 导语 全局阈值处理是图像处理中常用的技术之一,用于将图像转换为二值图像,从而提取感兴趣的目标区域。在 OpenCV 中,全局阈值处…

Mathtype公式编号,章节号修改

正常插入公式时,选择有编号没有任何问题,但是,当需要根据章节编号时,这个如何处理呢,这个时候需要 公式编号-章节-修改分隔符,然后会弹出一个对话框,这时可以修改章节开始序号。 此外&#xff…

【力扣周赛】第 353 场周赛

文章目录 Q1:6451. 找出最大的可达成数字(脑筋急转弯?)思路竞赛时代码 Q2:6899. 达到末尾下标所需的最大跳跃次数(DP)思路竞赛时代码 Q3:6912. 构造最长非递减子数组(DP&…

Openssh升级方法

文章目录 Openssh升级方法一.安装openssh模拟未升级版本二.查看当前的ssh服务版本 三.启动telnet、安装rzsz工具、创建普通账号,防止因为卸载openssh而导致无法登录主机四.卸载openssh的rpm安装包(备注:此处未卸载ssl安装包)&…

【WebGIS初学到入职】(15)入职一年的总结与分享

题外话 看看大纲可以怎么写,问问ChatGPT: ……算了,还是随便写写吧。 所以时间过得也是有够快的,这就一年了。 平淡 入职一年,已经看到好些位女同事结婚了(男同事一个没有)。领导和同事都挺…

汽车网站建设:开启汽车行业数字化转型的大门

随着科技的进步和互联网的普及,越来越多的汽车企业开始意识到一个强大的在线存在的重要性。汽车网站的兴起为汽车行业带来了新的机遇和好处。本文将简要介绍什么是汽车网站,探讨汽车网站的好处,并提供一些快速制作搭建汽车网站的方法。 汽车网…

@JsonFormat(pattern = “yyyy-MM-dd“, timezone = “GMT+8“) 日期格式

前端去掉时分秒 : /*** 出生日期*/ JsonFormat(pattern "yyyy-MM-dd", timezone "GMT8")// 解决后端到前端显示问题 DateTimeFormat(pattern "yyyy-MM-dd")// 解决前端到后端保存问题 TableField(value "birthday") A…

Django_静态资源配置和ajax(九)

目录 一、静态资源配置 二、AJAX ajax作用 使用ajax 1、环境配置 2、创建html模板文件 3、编写视图函数并添加路由 4、运行django开发服务器进行验证 源码等资料获取方法 一、静态资源配置 静态资源的相关配置都在项目目录下的 settings.py 文件中进行配置。配置参数如…