RHEL 7配置HAProxy实现Web负载均衡

一、测试环境
HAProxy:

主机名:RH7-HAProxy
IP地址:192.168.10.20
操作系统:Red Hat Enterprise Linux Server release 7.2 (Maipo)最小化安装
防火墙与SELinux:关闭
安装的服务:HAProxy-1.5.14

WEB01:

主机名:RH7-Web-01
IP地址:192.168.10.21
操作系统:Red Hat Enterprise Linux Server release 7.2 (Maipo)最小化安装
防火墙与SELinux:关闭
安装的服务:Apache-httpd 2.4

WEB02:

主机名:RH7-Web-02
IP地址:192.168.10.22
操作系统:Red Hat Enterprise Linux Server release 7.2 (Maipo)最小化安装
防火墙与SELinux:关闭
安装的服务:Apache-httpd 2.4

二、WEB页面访问测试

1、使用浏览器访问两台web的IP地址,能成功访问到不同的页面,方便我们后面直观地观察负载均衡的效果。由于Apache的安装配置不是本文重点,具体可参考本人之前的博文《RedHat 7安装配置Apache 2.4》

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡

2、在RH7-HAProxy上也访问一下两台Web,确认也可以正常访问

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡

三、安装配置HAProxy

[root@RH7-HAProxy~]yum -y install haproxy
[root@RH7-HAProxy~]systemctl start haproxy
[root@RH7-HAProxy~]systemctl enable haproxy
[root@RH7-HAProxy~]mv /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bak
[root@RH7-HAProxy~]vi /etc/haproxy/haproxy.cfg

增加以下内容,然后重启haproxy服务
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


使用浏览器访问HAProxy的IP地址,多次刷新,成功实现轮询访问web01和web02
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


登录haproxy的后台
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


可以看到访问web01和web02的相关统计数据
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


修改haproxy的配置文件,将web01的权重改为3,web02的权重仍为1,这样访问到两台web的比例应该为3:1,改好后重启下haproxy服务
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


再次通过浏览器访问HAProxy的IP地址,多次刷新进行访问测试
再次登录HAProxy后台查看统计数据,可以看到访问到web01和web02的比例为3:1

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡

四、配置HAProxy使用Https加密访问

采用客户端到HAProxy使用https、HAProxy到WEB端使用http的方式,只需要在HAProxy上配置证书,这里我们就配置一张自签名证书来测试一下
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


查看一下配置好的证书jiangjianlong.pem
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


修改HAProxy的配置文件,增加以下参数后重启haproxy服务
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


使用https协议访问HAProxy的IP地址,提示证书存在问题,这是因为自签名证书不受浏览器信任,但说明上文配置的证书已经生效了,点击继续浏览此网站
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


成功访问到Web01页面,刷新也能访问到Web02,说明在https的加密访问下负载均衡也没问题
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


通过hosts解析配置一个域名指向HAProxy的IP地址,也能正常访问
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


查看下证书信息,跟我们创建的证书信息一致
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


配置http重定向,自动将http重定向为https,修改haproxy配置文件,增加以下参数,并重启服务
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


使用浏览器测试,成功实现http自动重定向为https进行访问,但由于截图无法呈现这个动态的效果,就不截了。

五、配置HAProxy使用独立日志文件

1、HAProxy的日志默认写入到系统日志中去,我们可以把它独立出来,方便排查管理。编辑/etc/rsyslog.conf,按下图进行修改
 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


 

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡


2、重启rsyslog服务,再通过浏览器访问一下web以便产生日志,然后查看/var/log/haproxy.log,发现日志已经按照我们上文所配置的那样,记录到/var/log/haproxy.log来了

RHEL 7配置HAProxy实现Web负载均衡RHEL 7配置HAProxy实现Web负载均衡

  

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

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

相关文章

SpringBoot3数据库集成

标签:Jdbc.Druid.Mybatis.Plus; 一、简介 项目工程中,集成数据库实现对数据的增晒改查管理,是最基础的能力,而对于这个功能的实现,其组件选型也非常丰富; 通过如下几个组件来实现数据库的整合…

微信小程序 map地图(轨迹)

allMarkers效果图 废话少说直接上马(最后是我遇到的问题) cover-view是气泡弹窗,可以自定义弹窗,要配合js:customCallout,如果是非自定义的话:callout(可以修改颜色、边框宽度、圆角…

【设计模式】拦截过滤器模式

拦截过滤器模式(Intercepting Filter Pattern)用于对应用程序的请求或响应做一些预处理/后处理。定义过滤器,并在把请求传给实际目标应用程序之前应用在请求上。过滤器可以做认证/授权/记录日志,或者跟踪请求,然后把请…

pytest fixture 常用参数

fixture 常用的参数 参数一:autouse,作用:自动运行,无需调用 举例一:我们在类中定义一个function 范围的fixture; 设置它自动执行autouseTrue,那么我们看下它执行结果 输出: 说明:…

Xamarin.Android实现手写板的功能

目录 1、背景说明2、实现效果3、代码实现3.1 整体思路3.2 核心绘画类-PaintView.cs3.3 对话框类-WritePadDialog.cs3.4 前端实现类-MainActivity3.5 布局文件3.5.1 write_pad.xml3.5.2 activity_main布局文件 4、知识总结5、代码下载6、参考资料 1、背景说明 在实际使用过程中…

【JDBC系列】- 扩展提升学习

扩展提升学习 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 博客首页 怒放吧德德 To记录领地 🌝分享学习心得,欢迎指正&#xff0…

【前端】求职必备知识点4-CSS:flex、隐藏元素(7种方法)、单位

文章目录 flex隐藏元素(7种方法)不占位置占位置 单位思维导图 flex 【前端】CSS3弹性布局(flex)、媒体查询实现响应式布局和自适应布局_css媒体查询 自适应_karshey的博客-CSDN博客 flex缩写: flex-grow 和 flex-shr…

【Linux】网络基础2

文章目录 网络基础21. 应用层1.1 协议1.2 HTTP 协议1.2.1 URL1.2.2 urlencode和urldecode1.2.3 HTTP协议格式1.2.4 HTTP的方法1.2.5 HTTP的状态码1.2.6 HTTP 常见的header1.2.7 最简单的HTTP服务器 2. 传输层2.1 端口号2.1.1 端口号范围划分2.1.2 认识知名端口号2.1.3 netstat2…

浏览器无法连接网络问题

问题描述 电脑其他程序都能正常联网,但是所有的浏览器都无法联网,同时外部网站都能ping通 问题诊断 查看电脑Internet连接的问题报告显示:该设备或资源(Web 代理)未设置为接受端口"7890"上的连接。 解决方案 经过检查发现不是IP地址…

PHP Mysql查询全部全部返回字符串类型

设置pdo属性 $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

中科亿海微浮点数转换定点数

引言 浮点数转换定点数是一种常见的数值转换技术,用于将浮点数表示转换为定点数表示。浮点数表示采用指数和尾数的形式,可以表示较大范围的数值,但存在精度有限的问题。而定点数表示则采用固定小数点位置的形式,具有固定的精度和范…

架构训练营学习笔记:6-1 微服务

序 这部分是了解的。传统企业使用soa较多。很多企业银行、电信对于Oracle 依赖大,强调稳定性。各个项目侧重外包,技术栈不统一。 soa 历史 这个之前电信的BOSS系统就是这种架构,不知道现在呢,核心计费系统billing是运行在tuxduo…

1.作用域

1.1局部作用域 局部作用域分为函数作用域和块作用域。 1.函数作用域: 在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。 总结: (1)函数内部声明的变量,在函数外部无法被访问 (2)函数的参数也是函数内部的局部变量 (3)不同函数…

分布式协调组件Zookeeper

Zookeeper介绍 什么是Zookeeper ZooKeeper 是⼀种分布式协调组件,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper 通过其简单的架构和 API 解决了这个问题。ZooKeeper 允许开发人员专注于核心应用程序逻辑,而不必担心应用…

大数据扫盲(1): 数据仓库与ETL的关系及ETL工具推荐

在数字化时代,数据成为了企业决策的关键支持。然而,随着数据不断增长,有效地管理和利用这些数据变得至关重要。数据仓库和ETL工具作为数据管理和分析的核心,将帮助企业从庞杂的数据中提取有价值信息。 一、ETL是什么? …

【脚踢数据结构】内核链表

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,Linux基础,ARM开发板,软件配置等领域博主🌍快上🚘,一起学习,让我们成为一个强大的攻城狮!送给自己和读者的一句鸡汤🤔&…

Remote Sensing,2023 | 基于SBL的分布式毫米波相干雷达成像的高效实现

Remote Sensing,2023 | 基于SBL的分布式毫米波相干雷达成像的高效实现 注1:本文系“无线感知论文速递”系列之一,致力于简洁清晰完整地介绍、解读无线感知领域最新的顶会/顶刊论文(包括但不限于 Nature/Science及其子刊; MobiCom, Sigcom, MobiSys, NSDI…

WEB集群——LVS-DR 群集、nginx负载均衡

1、基于 CentOS 7 构建 LVS-DR 群集。 2、配置nginx负载均衡。 一、 LVS-DR 群集 1、LVS-DR工作原理 LVS-DR(Linux Virtual Server Director Server) 名称缩写说明 虚拟IP地址(Virtual IP Address) VIPDirector用于向客户端计算机提供服务的IP地址真实…

TCP网络服务器设计

最近设计了一个网络服务器程序,对于4C8G的机器配置,TPS可以达到5W。业务处理逻辑是简单的字符串处理。服务器接收请求后对下游进行类似广播的发送。在此分享一下设计方式,如果有改进思路欢迎大家交流分享。 程序运行在CentOS7.9操作系统上&a…

【uniapp】uniapp设置安全区域:

文章目录 一、效果图:二、实现代码: 一、效果图: 二、实现代码: {"path": "pages/index/index","style": {"navigationStyle": "custom","navigationBarTextStyle": "white","navigationBarTitle…