使用Haproxy搭建Web群集

1、Haproxy概述。

        Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多,如LVS和Nginx。相比较而言,LVS性能最好,但是搭建相对复杂;Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,性能没有Haproxy号。

1.2、HTTP请求

        通过URL访问网站使用的协议是HTTP协议,此类请求一般称为HTTP请求。HTTP请求的方式分为GET方式和POST方式。当使用浏览器访问某一个URL,会根据请求URL返回状态码,通常正常的状态码为2XX、3XX(如200、300),如果出现异常会返回4XX、5XX(如400、500)。

1.3、负载均衡常用调度算法。

1)RR。RR算法是最简单最常用的一种算法,即轮询调度。

2)LC。LC算法即最小连接数算法,根据后端的节点连接数大小动态分配前端请求。

3)SH。SH即基于来源访问调度算法。

2、案例环境

组件包:Haproxy nginx(httpd)

设备

IP

备注

Centos01

192.168.136.10

Node1

Centos02

192.168.136.20

Web1

Centos03

192.168.136.30

Web2

2.1、编译安装Haproxy

上传Haproxy的软件包到node1并安装组件

[root@nodeAAA ~]# yum -y install pcre-devel bzip2-devel gcc gcc-c++ make

[root@nodeAAA ~]# tar zxf haproxy-1.5.19.tar.gz 

[root@nodeAAA ~]# cd haproxy-1.5.19
[root@nodeAAA haproxy-1.5.19]# make TARGET=linux26 && make install


建立Haproxy的配置文件

[root@nodeAAA haproxy-1.5.19]# mkdir /etc/haproxy
[root@nodeAAA haproxy-1.5.19]# cp examples/haproxy.cfg /etc/haproxy/


修改配置文件,添加Web节点
[root@nodeAAA haproxy-1.5.19]# vim /etc/haproxy/haproxy.cfg 

listen  WEB *:80
        option  httpchk GET /index.html
        balance roundrobin
        server  inst1 192.168.136.20:80 check inter 2000 fall 3
        server  inst2 192.168.136.30:80 check inter 2000 fall 3


创建群集根目录

[root@nodeAAA ~]# mkdir /usr/share/haproxy


添加Haproxy为系统服务

[root@nodeAAA ~]# cd haproxy-1.5.19
[root@nodeAAA haproxy-1.5.19]# cp examples/haproxy.init /etc/init.d/haproxy
[root@nodeAAA haproxy-1.5.19]# ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@nodeAAA haproxy-1.5.19]# chmod +x /etc/init.d/haproxy 
[root@nodeAAA haproxy-1.5.19]# chkconfig --add /etc/init.d/haproxy 
[root@nodeAAA haproxy-1.5.19]# systemctl start haproxy

2.2、编译安装Nginx服务器。 

将Nginx软件包上传到web1和web2,并安装组件

[root@nodeBBB ~]# yum -y install pcre-devel zlib-devel gcc gcc-c++ make


创建Nginx用户

[root@nodeBBB ~]# useradd -M -s /sbin/nologin nginx


解包然后编译安装

[root@nodeBBB ~]# tar zxf nginx-1.24.0.tar.gz 
[root@nodeBBB ~]# cd nginx-1.24.0
[root@nodeBBB nginx-1.24.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

[root@nodeBBB nginx-1.24.0]# make && make install


创建主程序链接文件

[root@nodeBBB nginx-1.24.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/


修改测试页面的内容

[root@nodeBBB ~]# vim /usr/local/nginx/html/index.html 
启动Nginx

[root@nodeBBB ~]# nginx

2.3、验证测试

使用浏览器访问http://192.168.136.10(调度服务器)

刷新网页即可轮询切换

2.4、Haproxy日志

修改Haproxy配置文件中的日志配置

[root@nodeAAA ~]# vim /etc/haproxy/haproxy.cfg 
global
        log /dev/log    local0
        log /dev/log    local1 notice


配置Haproxy日志

[root@nodeAAA ~]# vim /etc/rsyslog.d/haproxy.conf
if ($programname == 'haproxy' and $syslogseverity-text == 'info') then -/var/log/haproxy/haproxy-info.log
& ~
if ($programname == 'haproxy' and $syslogseverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log
& ~


创建日志目录

[root@nodeAAA ~]# vim /etc/rsyslog.d/haproxy.conf

[root@nodeAAA ~]# mkdir /var/log/haproxy


重新启动服务
[root@nodeAAA ~]# systemctl restart haproxy
[root@nodeAAA ~]# systemctl restart rsyslog

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI未来10年展望

人工智能(AI)在过去十年中迅速发展,其未来有望取得更加引人注目的发展。 在本文中,我们将探讨人工智能的未来 10 年以及我们对未来十年的期望。 我们将解决一些关键问题,以全面概述人工智能的未来。 1、10年后AI会发展…

前端配置开发环境,新电脑配置前端开发环境,Vue开发环境配置的详细过程(前端开发环境配置,电脑重置后配置前端开发环境)

简介:有时候,我们需要在新电脑 或者 电脑重置后,配置前端开发环境,具体都需要安装什么软件和插件,这里来记录一下(文章适合新手和小白,大佬可以带过)。 ✨前端开发环境,需…

前端架构: 脚手架之包管理工具的案例对比及workspaces特性的使用与发布过程

npm的workspaces 特性 1 )使用或不使用包管理工具的对比 vue-cli 这个脚手架使用 Lerna 管理,它的项目显得非常清晰在 vue-cli 中包含很多 package 点开进去,每一个包都有package.json它里面有很多项目,再没有 Lerna 之前去维护和…

重生奇迹MU攻略教学

1:前提是人物等级到80级,没有80级不能使用。 2:杀怪范围,大家不用改,就8吧,但是有时候也会跑很远。 3:技能近战使用,我作为战士,点了和不点没区别。 4:然后…

【国产MCU】-CH32V307-定时器同步模式

定时器同步模式 文章目录 定时器同步模式1、定时器同步模式介绍2、驱动API介绍3、定时器同步模式实例1、定时器同步模式介绍 CH32V307的定时器能够输出时钟脉冲(TRGO),也能接收其他定时器的输入(ITRx)。不同的定时器的ITRx的来源(别的定时器的TRGO)是不一样的。 通用定…

Midjourney是个什么软件?midjourney订阅教程

数字时代,AI的应用正在不断推动各个领域的发展。其中,AI在艺术和设计领域的运用引起了广泛的关注。作为一款爆火的AI绘画软件,Midjourney通过其独特的原理和便捷的使用方法,为创作者提供了一个创作逼真绘画作品的全新平台 1、AI绘…

【c语言】探索结构体---解锁更多选择

前言 结构体属于自定义类型的一种,这增加了我们写代码的选择,跟着我的脚步一起来探索结构体吧~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 认识结构体 结构是⼀些值的集合,这些值…

数据结构知识点总结-树与二叉树-树的相关概念、性质

树与二叉树 概览图 本章节重点 掌握树、二叉树的相关概念定义; 掌握二叉树的递归遍历方式,了解非递归遍历方式。 掌握哈夫曼树及哈夫曼编码; 了解树的存储结构; 了解树与森林的转换。 树的相关概念 树是由n个有限结点组成的具有层次关系的集合。n=0 时称为空树。 …

【软件设计师】多元化多方面了解多媒体技术的内容

🐓 多媒体技术基本概念 多媒体主要是指文字、声音和图像等多种表达信息的形式和媒体,它强调多媒体信息的综合和集成处理。多媒体技术依赖于计算机的数字化和交互处理能力,它的关键是信息压缩技术和光盘存储技术。 亮度 亮度是光作用于人眼时所…

【深度学习】SDXL-Lightning 体验,gradio教程,SDXL-Lightning 论文

文章目录 资源SDXL-Lightning 论文 资源 SDXL-Lightning论文:https://arxiv.org/abs/2402.13929 gradio教程:https://blog.csdn.net/qq_21201267/article/details/131989242 SDXL-Lightning :https://huggingface.co/ByteDance/SDXL-Light…

Window系统部署Z-blog并结合内网穿透实现远程访问本地博客站点

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

DAY9-防病毒AV概述

DNS过滤 URL过滤和DNS过滤对比

深入理解网络通信基本原理和tcp/ip协议

深入理解网络通信基本原理和tcp/ip协议 一、计算机网络体系1,计算机网络体系结构2,网络中数据传输2.1,浏览器中输入一个url的执行流程2.2,数据在网络中是的传输流程 3,三次握手和四次挥手3.1,三次握手3.1.1…

晶振电路的并联电阻有什么用?

在晶振电路中,并联电阻是一个很重要的元器件,它和石英晶体谐振器并联连接。并联电阻的作用有以下几点: 1.频率调节 并联电阻可以调整晶振电路的频率。当并联电阻的值变化时,会影响到电路的阻抗,从此改变石英晶体谐振…

java开发环境配置一指禅

IDEA下载与安装 IDEA 全称 IntelliJ IDEA,是java编程语言的集成开发环境。 idea下载地址 。 JDK安装配置 JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环…

怎样才能考上南京大学的计算机研究生?

附上南大与同层次学校近四年的分数线对比,整体很难 添加图片注释,不超过 140 字(可选) 添加图片注释,不超过 140 字(可选) 我本人是双非一本的计算机专业,23考研一战上岸的&#xf…

详解 useEffect return 内外的代码执行顺序

参考代码 import React, { useEffect, useState } from react import { Link } from react-router-domfunction Demo() {const [count, setCount] useState(0)useEffect(() > {console.log(无依赖---------------------------, count)return () > {console.log(执行 无…

Tomcat安装及环境配置

一、检查是否安装jdk 可以win R 输入cmd在命令行中输入java -version 查看jdk的版本,如果没有安装可在官网下载后安装,我们老师直接发给我们了安装包,点击就可以安装了。如果已经安装,可以跳过安装步骤。 安装过程 一直点击下一…

MySQL8.0+jdk17启动seata报错处理

报错 问题1 问题2 处理完问题1,启动后发现MySQL连接报错。 原因 问题1 由于本地是jdk17版本过高,这里使用seata-server-1.5.1,版本冲突。 问题2 由于本地使用MySQL8.0以上,Nacos中的配置不是com.mysql.cj.jdbc.Driver 解决…

FreeRTOS 10移植STM32F10X系列教程,文末附源码。

1、文件准备 去FreeRTOS官网下载源码,尽量下载最新版本,里面有demo工程,解压完成后只保留FreeRTOS文件夹即可。 source文件即为FreeRTOS源码 新建一个文件夹source,将当前目录的.c文件移动到source文件夹里。 portable文件夹里只保…