linux之Haproxy

介绍

haproxy是一种开源的TCP和HTTP负载均衡代理服务器软件。客户端通过Haproxy代理服务器获得站点页面,而代理服务器收到客户请求后根据负载均衡的规则将请求数据转发给后端真实服务器

下载Haproxy

yum install haproxy -y

开启服务

systemctl start haproxy

配置文件

在主配置文件/etc/haproxy/haproxy.cfg中,由两大部分组成

global:全局配置

proxies:代理配置

defaults :为 frontend, backend, listen 提供默认配置
frontend :前端,相当于 nginx 中的 server {}
backend :后端,相当于 nginx 中的 upstream {}
listen :同时拥有 前端和后端配置

Haproxy的8种负载均衡 

在proxies中的backend模块中设置

1. 轮询 (Round Robin): 请求依次分发到每个后端服务器,按顺序进行负载均衡。

2. 加权轮询 (Weighted Round Robin): 可以为每个后端服务器设置权重,根据权重分配请求,以实现不同性能的服务器在负载均衡中发挥不同作用。

3. 最少连接 (Least Connection): 请求分发到当前连接数最少的后端服务器,以实现负载均衡。

4. 加权最少连接 (Weighted Least Connection): 与加权轮询类似,可以为每个后端服务器设置权重,但该模式根据连接数来决定负载均衡。

5. URI哈希 (URI Hash): 将请求的URI进行哈希,然后根据哈希值将请求分发到对应的后端服务器,确保相同URI的请求经常落在同一后端服务器上。

6. IP哈希 (IP Hash): 将请求的源IP进行哈希,然后根据哈希值将请求分发到对应的后端服务器,确保同一IP的请求经常落在同一后端服务器上。

7. URL参数哈希 (URL Parameter Hash): 与URI哈希类似,不过该模式是根据请求的URL参数进行哈希来实现负载均衡。

8. 复制(Backup): 当主要的服务器不可用时,请求会被转发到指定的备用服务器,用于故障转移和故障恢复。

Haproxy负载均衡实例(一)

Haproxy主机配置192.168.199.149,真实服务器为192.168.199.150,192.168.199.155,默认配置好nginx服务,自己能curl自己,显示自己的页面
关闭firewalld和selinux

修改主配置文件

vim /etc/haproxy/haprooxy.cgf(其他部分注释掉)
采取轮询模式,权重相等

修改rsyslog配置

vim /etc/rsyslog.conf
开启UDP,修改*.emarg  ,添加最后一行

开启远程日志

vim /etc/sysconfig/rsyslog

重启服务

systemctl restart rsyslog
systemctl restart haproxy

测试

访问192.168.199.149
155和150轮询成功
输入192.168.199/ha_stats

问题解决

访问192.168.199/ha_stats显示错误
查看haproxy服务状态显示没有成功启动
原因:/etc/haproxy/haproxy.cfg配置错误
修改

使用Keepalived实现HAProxy高可用

主机192.168.199.149        虚拟IP192.168.199.148

备机192.168.199.151

后端真实服务器192.168.199.150,192.168.199.155

主机+备机        keepalived,haproxy

真实服务器        nginx

关闭firewalld和selinux

主机配置

yum install keepalived

yum install hapoxyd

keepalived配置

vim /etc/keepalived/keepalived.cfg

haproxy配置

vim /etc/haproxy/haproxy.cfg

备机配置

直接把主机的配置传到备机上

在主机上执行

scp /etc/keepalived/keepalived.cfg  192.168.199.151:/etc/keepalived/keepalived.cfg

scp /etc/haproxy/haproxy.conf  192.168.199.151:/etc/haproxy/haproxy.conf

在备机的/etc/keepalivedkeepalived.cfg中把state 后面修改为BACKUP

priority修改为小于100(一般为90)

真实服务器配置

配置好nginx,开启服务并能curl自己显示界面

开启nginx服务

测试

在主机和备机分别开启服务

systemctl start keepalived

systemctl start haproxy

只有当system status 服务 显示成功启动成功才行(显示绿色running)

测试负载均衡

测试高可用

添加虚拟IP

ip addr add 192.168.199.148/32 dev ens33

主节点IP

备机IP

停掉主机的keepalived服务,查看ip是否漂移

发现没有漂移,访问192.168.199.148出现问题

检查后发现keepalived配置文件缺少检查配置,修改后如下

添加一个vrrp_script

在 Keepalived 中,vrrp_script 是用于定义状态检测脚本的配置项。通过 vrrp_script 配置,Keepalived 可以定期执行指定的状态检测脚本,用于检测特定服务或资源的可用性,从而决定节点的状态切换

再次测试

重启服务,再次测试,停止主机的haproxy服务

查看主机ip,实现漂移

备机IP

测试页面,成功

重新启动主机的haproxy服务,查看主机ip

148虚拟IP漂移回来(大概过几秒钟)

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

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

相关文章

系统分析师(软考)知识点整理——进程管理

操作系统 概念 操作系统是控制和管理计算机软硬件资源,以尽可能合理、有效的方法组织多个用户共享多种资源的程序集合 作用 通过资源管理提高计算机系统的效率改善人际界面面向用户提供友好的工作环境 特征 并发性共享性虚拟性不确定性 进程管理 概念 进程…

【办公类-22-15】周计划系列(5-6)“周计划-06 周计划打印pdf(docx删除内容转PDF)“ (2024年调整版本)

作品展示 背景需求: 前期用docx(删除第一页反思部分内容)转PDF转png(第一页)的方式获得上传网页用的图片。 【办公类-22-14】周计划系列(5-5)“周计划-05 上传周计划png(docx转PDF…

【MLLM+轻量多模态模型】24.02.Bunny-v1.0-2B-zh: 轻量级多模态语言模型 (效果一般)

24.02 北京人工智能研究院(BAAI)提出以数据为中心的轻量级多模态模型 arxiv论文:2402.Efficient Multimodal Learning from Data-centric Perspective 代码:https://github.com/BAAI-DCAI/Bunny 在线运行:https://wis…

前端调用接口地址跨越问题,nginx配置处理

在nginx配置里面添加add_header如下: add_header Access-Control-Allow-Origin *; #add_header Access-Control-Allow-Origin http://localhost:8080 always; add_header Access-Control-Allow-Methods GET, POST, PUT, D…

[Java、Android面试]_09_Synchronized、volatile、Lock并发

本人今年参加了很多面试,也有幸拿到了一些大厂的offer,整理了众多面试资料,后续还会分享众多面试资料。 整理成了面试系列,由于时间有限,每天整理一点,后续会陆续分享出来,感兴趣的朋友可关注收…

自上而下的角色扮演游戏资产包幻想梦境

Fantasy Dreamland 是一個完整的資源包,包含開始製作自上而下的像素藝術遊戲所需的一切! 幻想夢境瓷磚套裝: - 超過 13,000 塊瓷磚! - 超過 500 個動畫圖塊! - 鐵匠! - 城堡! - 洞穴! - 聖誕節! (裝飾) - 城市! - 沙漠! - 沙漠房屋! - 夢想/天空! - …

【解决】使用Jekyll框架进入网页终端返回找不到.min.js或者类似Rollup模块化构建js失败问题

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 文章目录 一、问题表现二、问题解决(一)检查输出目录(二)启动Rollup构建 三、…

PCD1000AE单通道高压线性恒流LED控制芯片

概述 PCD1000AE 是一款线性恒流 IC,输出电流可调,恒流精度高,应用方案简单,成本和阻容降压相当,具有过温保护功能,更安全,更可靠。 特点 输出电流可调 5mA-60mA, 恒流精度可以达…

【C++】vector容器初步模拟

送给大家一句话: 努力一点,漂亮—点,阳光一点。早晚有一天,你会惊艳了时光,既无人能替,又光芒万丈。 vector容器初步模拟 1 认识vector开始了解底层实现 2 开始实现成员变量构造函数 析构函数尾插迭代器插入…

【漏洞复现】福建科立迅通信指挥调度平台down_file.php sql注入漏洞

漏洞描述 福建科立迅通信调度平台 20240318 以及之前版本存在一个严重漏洞,影响了文件 api/client/down_file.php 的一个未知功能。攻击者可以通过操纵参数 uuid 发起 SQL 注入攻击。攻击者可以远程发起攻击。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守…

GraalVM详细安装及打包springboot、java、javafx使用教程(打包springboot2篇)

前言 在当前多元化开发环境下,Java作为一种广泛应用的编程语言,其应用部署效率与灵活性的重要性日益凸显。Spring Boot框架以其简洁的配置和强大的功能深受开发者喜爱,而JavaFX则为开发者提供了构建丰富桌面客户端应用的能力。然而&#xff…

基于Java中的SSM框架实现图书仓储管理系统项目【项目源码+论文说明】

基于Java中的SSM框架实现图书仓储管理系统演示 摘要 随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期,随着经济文化水平的显著提高,人们对生活质量及…

【视频图像取证篇】模糊图像增强技术之锐化类滤波场景应用小结

【视频图像取证篇】模糊图像增强技术之锐化类滤波场景应用小结 模糊图像增强技术之锐化类滤波场景应用小结—【蘇小沐】 (一)锐化类滤波器 模糊消除类滤波器(Remove blur / Unsharpness)。 通用去模糊滤波器:针对大…

(ROOT)KAFKA详解

生产篇 使用 /** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to Y…

#Linux(环境变量)

(一)发行版:Ubuntu16.04.7 (二)记录: (1)查看环境变量 (2)修改环境变量 第一种方法:直接使用命令设置(立即生效,只会作用…

了解交换机上的SFP和QSFP端口

在当今互联的世界中,可靠、高效的网络通信对于企业的蓬勃发展至关重要。为了实现顺畅的连接,了解能够实现该目标的技术非常重要。其中一项关键技术是交换机上的SFP和QSFP端口。本文将简要介绍这些概念,定义并解释交换机SFP端口和QSFP端口的优…

视频私有云,HDMI/AV多硬件设备终端接入,SFU/MCU视频会议交互方案。

在视频业务深入的过程中越来越多的硬件设备接入视频交互的视频会议中远程交互,有的是视频采集,有的是医疗影像等资料,都需要在终端承显,这就需要我们的设备终端能多设备,多协议接入,设备接入如下。 1&#…

软件应用,宠物医院兽医开的处方单管理系统软件教程,宠物店营业软件教程

软件应用,宠物医院兽医开的处方单管理系统软件教程,宠物店营业软件教程 一、前言 以下软件操作教程以 佳易王宠物医院兽医处方软件V17.0为例说明 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 在开处方单的时候,可以打…

工程信号的去噪和(分类、回归和时序)预测

🚀【信号去噪及预测论文代码指导】🚀 还为小论文没有思路烦恼么?本人专注于最前沿的信号处理与预测技术——基于信号模态分解的去噪算法和深度学习的信号(回归、时序和分类)预测算法,致力于为您提供最精确、…

硬核分享|免费快速的高保真图片压缩方案

硬核分享|免费快速的高保真图片压缩方案_哔哩哔哩_bilibili 在当今数字化时代,图像已然成为我们日常生活中必不可少的元素之一。但是,伴随着高清相机与日俱增以及拍摄照片数量的飞速增长,如何安全、高效的存储和传播海量图片已逐渐成为亟待解…