Linux中配置HAProxy实现Web负载均衡

HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。

一、测试环境

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》

2、在RH7-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服务 使用浏览器访问HAProxy的IP地址,多次刷新,成功实现轮询访问web01和web02 登录haproxy的后台 可以看到访问web01和web02的相关统计数据 修改haproxy的配置文件,将web01的权重改为3,web02的权重仍为1,这样访问到两台web的比例应该为3:1,改好后重启下haproxy服务 再次通过浏览器访问HAProxy的IP地址,多次刷新进行访问测试 再次登录HAProxy后台查看统计数据,可以看到访问到web01和web02的比例为3:1

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

采用客户端到HAProxy使用https、HAProxy到WEB端使用http的方式,只需要在HAProxy上配置证书,这里我们就配置一张自签名证书来测试一下 查看一下配置好的证书jiangjianlong.pem 修改HAProxy的配置文件,增加以下参数后重启haproxy服务 使用https协议访问HAProxy的IP地址,提示证书存在问题,这是因为自签名证书不受浏览器信任,但说明上文配置的证书已经生效了,点击继续浏览此网站 成功访问到Web01页面,刷新也能访问到Web02,说明在https的加密访问下负载均衡也没问题 通过hosts解析配置一个域名指向HAProxy的IP地址,也能正常访问 查看下证书信息,跟我们创建的证书信息一致 配置http重定向,自动将http重定向为https,修改haproxy配置文件,增加以下参数,并重启服务 使用浏览器测试,成功实现http自动重定向为https进行访问,但由于截图无法呈现这个动态的效果,就不截了。

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

1、HAProxy的日志默认写入到系统日志中去,我们可以把它独立出来,方便排查管理。编辑/etc/rsyslog.conf,按下图进行修改 2、重启rsyslog服务,再通过浏览器访问一下web以便产生日志,然后查看/var/log/haproxy.log,发现日志已经按照我们上文所配置的那样,记录到/var/log/haproxy.log来了

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/9730.html

(0)
晴川运维晴川运维
上一篇 2天前
下一篇 2天前

相关推荐

  • Linux下查看最常使用命令

    Linux中如何查看自己常用的命令?在Linux系统中每天使用各种执行进行操作,但是大家知道自己使用最大的命令是什么吗?本篇文章重点为大家分享一下Linux下查看最常使用命令具体方…

    Linux系统 2025年6月12日
  • 简单介绍一下graphql

    graphql 是一种用于 API 的查询语言,对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,减少数据的冗余。 对比 Rest API…

    Linux系统 2025年6月8日
  • APF防火墙的安装和使用

    APF(Advanced Policy Firewall)是 Rf-x Networks 出品的Linux环境下的软件防火墙,被大部分Linux服务器管理员所采用,使用iptabl…

    Linux系统 2025年6月10日
  • Linux面试命令问答

    问:1 如何查看当前的Linux服务器的运行级别? 答: ‘who -r’ 和 ‘runlevel’ 命令可以用来查看当前的Linux服务器的运行级别。 问:2 如何查看Linux…

    Linux系统 2025年6月13日
  • Linux下安装并使用jod

    Jed是一个基于终端的编辑器,它的特点是有一个方便的下拉菜单,这让那些刚刚接触终端编辑器的用户,以及那些不喜欢记住每个功能的组合键的用户而言变得特别容易,下面为大家分享一下jod的…

    Linux系统 4天前
  • 使用ACL工具备份和恢复Linux的文件权限

    作为一个系统管理 ,我们的首要任务将是保护和未经授权的访问安全的数据。 我们都知道我们设置使用一些像CHMOD,CHOWN,chgrp命令 ……等有用的Linux命令然而,这些缺省…

    Linux系统 2025年6月13日
  • Linux中通过命令行卸载安装包

    严格地说,Linux是内核。Linux发行版由Linux内核、安装脚本、shell、编译器、桌面和其他组件组成。因此,卸载包或软件的Linux命令取决于Linux发行版的名称和类型…

    Linux系统 2025年6月12日
  • 使用 systemd 作为问题定位工具

    虽然 systemd 并非真正的故障定位工具,但其输出中的信息为解决问题指明了方向。 没有人会认为 systemd 是一个故障定位工具,但当我的 web 服务器遇到问题时,我对 s…

    Linux系统 2025年6月8日
  • Linux下查看文件内容具体方法

    Linux下查看文件内容有多种方法,可以使用:cat、tac、nl、more等命令,下面详细的讲解一下各个命令的具体使用方法。 cat 由第一行开始显示文件内容 语法: cat&n…

    Linux系统 2025年6月8日
  • mysql实现高可用架构之MHA

    MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能。MHA 在监控…

    Linux系统 2025年6月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注