当前位置: 首页 > news >正文

【部署篇】Haproxy-01安装部署(源码方式安装)

‌一、HAProxy概述‌

HAProxy是一款免费、快速且可靠的代理软件,提供高可用性、负载均衡,支持TCP和HTTP应用代理,HAProxy凭借其卓越的性能和灵活性,成为众多知名网站和系统的首选代理软件。‌
‌核心特点‌:

  • ‌高性能‌:采用事件驱动模型,支持大量并发连接,具有低延迟和高吞吐量。
  • ‌高可用性‌:能够自动检测后端服务器健康状态,实现故障切换,确保服务连续性。
  • ‌灵活性‌:支持多种负载均衡算法,可根据业务需求灵活配置。
  • ‌安全性‌:可作为反向代理隐藏后端服务器IP,支持SSL/TLS加密,保护数据传输安全。
  • ‌适用场景‌:广泛应用于大型网站、Web应用集群、微服务架构等,为各种业务场景提供负载均衡和高可用性解决方案。
  • ‌配置与部署‌:支持分多个文件配置,通过灵活配置可实现定制化需求。
  • 可视化监测:支持通过页面方式可视化监测后端服务运行状态。

二、安装Haproxy

安装文件可点击进入官网下载,也可以在文章关联的资源中进行下载。

# 安装基础软件
yum install -y gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl  openssl-devel systemd-devel net-tools vim iotop bc  zip unzip zlib-devel lrzsz tree screen lsof tcpdump wget# 下载安装包
wget https://www.haproxy.org/download/2.0/src/haproxy-2.0.31.tar.gz# 解压依赖
tar xvf haproxy-2.0.31.tar.gz# 查看系统内核版本,根据内核心指定编译参数TARGET的值(如:linux3100、linux5108等)
uname -r# 编译版本
make ARCH=x86_64 TARGET=linux3100 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1  PREFIX=/usr/local/haproxy# 进行安装
make install PREFIX=/usr/local/haproxy# 复制应用至path目录
cp haproxy  /usr/sbin/# 添加用户
groupadd haproxy
useradd -g haproxy haproxy
id haproxy# 创建配置文件存放目录
mkdir /etc/haproxy && mkdir /etc/haproxy/conf

三、配置文件

以下提供的是一下基础的Http服务配置,保存到主配置文件/etc/haproxy/haproxy.cfg中,配置多配置文件配置在haproxy.cfg也可配置到/etc/haproxy/conf目录下,通过启动参数 -f 指定。

# 编译haproxy.cfg
vi /etc/haproxy/haproxy.cfg
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
globallog         127.0.0.1 local0 infochroot      /usr/local/haproxymaxconn     20000daemon#-----------
# admin settings
#-----------
defaults adminmode httpstats                   enablestats refresh           30stimeout connect         10stimeout client          1mtimeout server          1m
listen http_statsbind                    *:8888  #监控访问端口stats uri               /haproxy  #监控访问路径stats hide-version        #隐藏版本号stats auth admin:123456 #设置管理员帐号和密码log 127.0.0.1 local0 err #[err warning info debug]
##################################################################
#Default mode http
##################################################################
defaults HTTPmode                    httplog                     globaloption                  httplogoption                  dontlognulloption http-server-closeoption forwardfor       except 127.0.0.0/8option                  redispatchretries                 3timeout http-request    10stimeout queue           1mtimeout connect         5000timeout client          50000timeout server          50000maxconn                 65535stats uri    /status
#---------------------------------------------------------------------
# HTTP 外网
#---------------------------------------------------------------------
frontend http-frontbind :80#bind :443 ssl crt /etc/haproxy/ssl/xxxxx.pemmode httpoption forwardforhttp-request set-header X-Client-IP %[src]http-request set-header X-forwarded-Port %[dst_port]http-request add-header X-forwarded-Proto https if { ssl_fc }#强制https#redirect scheme https if !{ ssl_fc }#HAuse_backend haproxy if { path_beg -i /haproxy }	#---------------------------------------------------------------------
# HTTP 内网
#---------------------------------------------------------------------
frontend http-prodbind :8085mode httpoption forwardforhttp-request set-header X-Client-IP %[src]#HAuse_backend haproxy if { path_beg -i /haproxy }	#票务内部接口
backend haproxy mode httpbalance sourceserver haproxy-1 127.0.0.1:8888 check  inter 2000 rise 2 fall 3 weight 1

四、配置服务

  • 在/usr/lib/systemd/system目录下添加haproxy.service文件将haproxy添加为系统服务,实现开机启动,-f可以指向文件,也可以指向文件夹;当指向文件夹时文件夹的所有文件将作为配置文件合并到haproxy.cfg中。
# 编写haproxy服务
vi /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target[Service]
#支持多配置文件读取,类似于从侧面是实现配置文件的include功能。
ExecStartPre=/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf -c -q
ExecStart=/usr/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -f /etc/haproxy/conf -p /run/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID[Install]
WantedBy=multi-user.target
  • 设置开始启动
# 启用服务,实现开机启动
systemctl enable haproxy.service # 加载systemd管理配置
systemctl daemon-reload# 启动服务
systemctl start haproxy# 停止服务
systemctl stop haproxy# 查看状态
systemctl status haproxy
  • 访问测试

启动haproxy服务后,通过http://Ip:8888/haproxy可打开监控页面,通过配置文件中的帐号:admin密码:123456进行登录访问。

相关文章:

【部署篇】Haproxy-01安装部署(源码方式安装)

‌一、HAProxy概述‌ HAProxy是一款免费、快速且可靠的代理软件,提供高可用性、负载均衡,支持TCP和HTTP应用代理,HAProxy凭借其卓越的性能和灵活性,成为众多知名网站和系统的首选代理软件。‌ ‌核心特点‌: ‌高性能…...

开拓鸿蒙测试新境界,龙测科技引领自动化测试未来

在当今科技舞台上,鸿蒙 OS 以非凡先进性强势登场,打破传统操作系统格局,为软件测试领域带来全新机遇与艰巨挑战。 一、鸿蒙 OS 的辉煌崛起 (一)壮丽发展历程与卓越市场地位 鸿蒙 OS 的发展如波澜壮阔的史诗。2023 年…...

Java项目-基于springboot框架的自习室预订系统项目实战(附源码+文档)

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…...

调整数组奇偶数顺序

今天给大家分享一道题目,要求我们输入一个数组,将全部奇数放在偶数前面(无需比较大小),下面是我写的代码 这个方法比使用三个数组进行数据传输要节省不少程序运行时间,缺点是使用了较多的while循环&#xf…...

Electron调用nodejs的cpp .node扩展【非安全】

Electron调用nodejs的cpp .node扩展【非安全】 环境: electron: 30.1.1 nodejs: 20.14.0前言 Electron中可以非常容易的调用nodejs的js代码,但是对于cpp .node扩展需要一定的配置才能调用,下面介绍一种最简单的cpp扩展的调用方法&#xff…...

一文了解AOSP是什么?

一文了解AOSP是什么? AOSP基本信息 基本定义 AOSP是Android Open Source Project的缩写,这是一个由Google维护的完全免费和开放的操作系统开发项目。它是Android系统的核心基础,提供了构建移动操作系统所需的基本组件。 主要特点 完全开源…...

ffmpeg视频边缘模糊,打造梦幻般的视觉效果!

在视频编辑的世界里,细节决定成败。边缘模糊效果是一种强大的工具,可以让你的作品瞬间提升质感。通过简单的命令,你可以轻松实现视频边缘的柔和化处理,创造出梦幻般的视觉效果。 想象一下,当你将一段普通的视频应用边…...

[Wireshark] 使用Wireshark抓包https数据包并显示为明文、配置SSLKEYLOGFILE变量(附下载链接)

前言 wireshark安装包 链接:https://pan.quark.cn/s/febb28f57c01 提取码:fUCQ 链接失效(可能会被官方和谐)可评论或私信我重发 chrome与firefox在访问https网站的时候会将密钥写入这个环境变量SSLKEYLOGFILE中,在wir…...

大话红黑树之(1)入门介绍

红黑树简介 红黑树(Red-Black Tree)是一种自平衡的二叉搜索树,其关键特性是通过颜色标记(红色和黑色)来保证树的平衡性,从而在最坏情况下依然可以保持较高的查找、插入和删除操作的效率。红黑树通常用于需…...

ESC/POS图片打印指令

一:实践前的理论部分 蓝牙/热敏打印机如何打印图片。 票据打印机的指令和条码打印机的指令对于打印图片的格式要求基本都相似 看看ESC/POS指令的文档 是的看不懂。。。干脆直接试试好了,从如何打印一个像素的小黑点开始。 注意到x的最小单位是字节数…...

Unity之如何在Linux上部署Dedicated Server专用服务器

文章目录 前言构建为专用服务器启动时获取参数在 DigitalOcean 上准备 Linux 服务器最后,让我们开始吧。前言 我们在使用Mirror,Fishnet或者Unity Netcode开发多人游戏时,一般有三种链接模式,分别是:Host,Server,Client。 Host:代表既是客户端又是服务器 Server:代表…...

十、Linux 故障排除专业案例分享

Linux 故障排除专业案例分享 在 Linux 操作系统漫长的使用历程当中,不可避免地会遭遇到各种各样不同类型的故障。本文将会深入而全面地阐述一些较为常见的 Linux 故障以及与之相对应的解决方案。其目的在于,当用户在实际使用过程中面临类似问题的时候&a…...

智慧楼宇平台,构筑未来智慧城市的基石

随着城市化进程的加速,城市面临着前所未有的挑战。人口密度的增加、资源的紧张、环境的恶化以及对高效能源管理的需求,都在推动着我们寻找更加智能、可持续的城市解决方案。智慧楼宇作为智慧城市建设的重要组成部分,正逐渐成为推动城市可持续…...

JVM 实战篇(一万字)

此笔记来至于 黑马程序员 内存调优 内存溢出和内存泄漏 内存泄漏(memory leak):在Java中如果不再使用一个对象,但是该对象依然在 GC ROOT 的引用链上,这个对象就不会被垃圾回收器回收,这种情况就称之为内…...

线程同步之双摄

如何实现两个摄像头进行同步,并利用同步的信号做一些事情, 比如stereo camera 做深度,如果是自己整的两个camera,同步就需要自己做, 那么这时候可以利用线程同步手写一个,下面给一个示例代码: …...

使用 PyTorch 构建 LSTM 股票价格预测模型

目录 引言准备工作1. 训练模型(train.py)2. 模型定义(model.py)3. 测试模型和可视化(test.py)使用说明模型调整结论 引言 在金融领域,股票价格预测是一个重要且具有挑战性的任务。随着深度学习…...

【C++篇】C++类与对象深度解析(五):友元机制、内部类与匿名对象的讲解

文章目录 前言 💬 欢迎讨论:如果你在学习过程中有任何问题或想法,欢迎在评论区留言,我们一起交流学习。你的支持是我继续创作的动力! 👍 点赞、收藏与分享:觉得这篇文章对你有帮助&#xff01…...

模型训练进度条的代码

这个内容难在什么地方呢&#xff1f; 我想要跳转到另一个页面的时候 如何保存当前的训练状态&#xff0c;本来还想着加一个页面去管理进度的。然后想到了localstorage&#xff0c;将一些信息存储到浏览器中去。 进度条展示 <el-form-item label"训练进度" v-show…...

直观理解反向传播 | Chapter 3 | Deep Learning | 3Blue1Brown

目录 前言1. 简介2. 回顾3. 直观的演绎示例4. 随机梯度下降相关资料结语 前言 3Blue1Brown 视频笔记&#xff0c;仅供自己参考 这个章节主要来直观地理解反向传播算法到底在做什么 官网&#xff1a;https://www.3blue1brown.com 视频&#xff1a;https://www.bilibili.com/vide…...

052_python基于Python高校岗位招聘和分析平台

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍&#xff1a;CodeMentor毕业设计领航者、全网关注者30W群落&#xff0c;InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者&#xff0c;博客领航之星、开发者头条/腾讯云/AW…...

基于物联网、大数据、人工智能等技术开发的Spring Cloud 智慧工地云平台源码,支持多端应用

系统概述&#xff1a; 智慧工地是指运用现代信息技术&#xff0c;如物联网&#xff08;IoT&#xff09;、大数据、人工智能&#xff08;AI&#xff09;、云计算、移动互联网等&#xff0c;对传统建筑工地进行智能化改造和管理的新型工地。它通过高度集成的系统和设备&#xff…...

常见的跨境电商平台对比【总结表】

常见的跨境电商平台对比【总结表】 平台目标市场费用结构物流服务支付方式推广工具适合卖家亚马逊全球销售佣金、月租费、FBAFBA支持全球配送多种支付方式广告工具、促销活动有一定资金实力的品牌和卖家eBay全球上市费、成交费第三方物流支持PayPal、信用卡广告工具、促销活动…...

perl批量改文件后缀

perl批量改文件后缀 如题&#xff0c;perl批量改文件后缀&#xff0c;将已有的统一格式的文件后缀&#xff0c;修改为新的统一的文件后缀。 #!/bin/perl use 5.010;print "Please input file suffix which U want to rename!\n"; chomp (my $suffix_old <>)…...

【Python中的字符串处理】正则表达式与常用字符串操作技巧!

Python中的字符串处理&#xff1a;正则表达式与常用字符串操作技巧 Python 在字符串处理方面提供了丰富的内置功能和模块&#xff0c;能够帮助开发者处理各种复杂的文本操作。无论是简单的字符串拼接、替换&#xff0c;还是借助正则表达式&#xff08;re 模块&#xff09;实现…...

又是一年一度的1024,那就记录一篇算法博客吧~ 【二进制加法探秘】

前言&#xff1a; 又是一年一度的1024&#xff0c;那就记录一篇算法博客吧~ 内容如下~ 1 题目介绍 给定两个二进制字符串 a 和 b&#xff0c;需要返回它们的和&#xff0c;结果以二进制字符串形式给出。 示例 1&#xff1a; 输入: a “11”, b “1” 输出: “100” 示例 2…...

LeetCode--买卖股票的最佳时机含冷冻期--动态规划

一、题目解析 二、算法原理 我们可以使用dp[i]来表示第i天买卖股票所获得的最大利润。由题可得我们只能持有一支股票&#xff0c;并且在卖出后有冷冻期的限制&#xff0c;因此我们会有三种不同的状态&#xff1a; 我们目前持有一支股票&#xff0c;对应的「累计最大收益」记为…...

装了Ubuntu和Windows双系统,如何设置默认启动Windows

可以将默认启动系统设置为Windows&#xff0c;以下是步骤&#xff1a; 1. 修改GRUB配置文件&#xff1a; • 启动到Ubuntu&#xff0c;打开终端。 • 编辑GRUB配置文件&#xff1a; sudo nano /etc/default/grub • 找到这一行&#xff1a; GRUB_DEFAULT0 将0改为对应Wi…...

WPF+MVVM案例实战-设备状态LED灯变化实现

文章目录 1、项目创建2、UI界面布局1. MainWindow.xaml2、颜色转换器实现2.MainViewModel.cs 代码实现 3、运行效果4.源代码下载 1、项目创建 打开 VS2022 &#xff0c;新建项目 Wpf_Examples&#xff0c;创建各层级文件夹&#xff0c;安装 CommunityToolkit.Mvvm 和 Microsof…...

MySQL--基本介绍

一.数据库前言 1.数据库的相关介绍 关系数据库管理系统&#xff08;Relational Database Management System&#xff1a;RDBMS&#xff09;是指包括相互联系的逻辑组织和存取这些数据的一套程序 (数据库管理系统软件)。关系数据库管理系统就是管理关系数据库&#xff0c;并将数…...

PAT甲级1008 Elevator

题目地址&#xff1a;1008 Elevator - PAT (Advanced Level) Practice (pintia.cn) 介绍 The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the elevator will stop, in spe…...

使用编辑字母做免费网站/官方网站百度一下

可在API下&#xff0c;ctrlF 查找arrays&#xff0c; Arrays类包含用来操作数组&#xff08;比如排序和搜索&#xff09;的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。 在此列出几个常用的&#xff1a; 1.static String Arrays.toString&#xff08;数组类型…...

b2b网站推广/谷歌在线浏览器免费入口

点击上方“iOS开发”&#xff0c;选择“置顶公众号” 关键时刻&#xff0c;第一时间送达&#xff01; 科技公司纷纷投入原创节目制作&#xff0c;苹果杀出重围或许不是什么难事。 如今市场竞争越来越激烈&#xff0c;对于许多电视台来说&#xff0c;能够吸引到观众观看的就是独…...

免费个人网站制作/站长工具在线免费

产品 多维度产品拆解(时间、用户、版本、结果)时间&#xff1a;生命周期&#xff08;开发期、导入期、成长期、成熟期、衰退期&#xff09;、产品成长&#xff08;内容运营、活动运营、营销&#xff09;用户&#xff1a;用户细分&#xff08;目标用户%20、长尾用户%20、…...

上海南站网站建设公司/包头整站优化

点击蓝字关注我们什么是函数的返回值&#xff1f;C语言函数如果执行成功的话&#xff0c;返回1、返回0还是返回别的值&#xff1f;如果大家还不是很清楚&#xff0c;那么就让小橙同学来给大家介绍一下。C语言简介首先&#xff0c;简单介绍一下C语言。C 语言是一种通用的、面向过…...

莱芜融媒体中心网站/百度搜索引擎营销如何实现

在发展工业物联网 (IoT) 以及满足相关的工业传感器无线连网需求方面&#xff0c;已经做了很多。不过&#xff0c;工业设备及应用的网络需求与家用环境完全不同&#xff0c;可靠性和安全性是高居工业应用要求的榜首。本文重点讨论特定于工业无线传感器网络的一些关键网络要求。 …...

在excel表里做网站模板/北京全网推广

文章目录A 自动控制的一般概念A.a 自动控制系统A.b 控制系统的性能要求A.c 自动控制的基本方式A 自动控制的一般概念 A.a 自动控制系统 控制&#xff1a;是指利用控制装置来操纵被控对象&#xff0c; 使被控量按指定的规律变化。 被控对象&#xff1a; 在自动控制技术中&…...