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)
晴川运维晴川运维
上一篇 2025年6月19日
下一篇 2025年6月19日

相关推荐

  • NGINX动静分离

    动静分离主要是通过nginx+PHP-FPM来实现,其中nginx处理图片,html等静态的文件,PHP处理动态程序[PHP-FPM] 简单点来说,就是用户在请求的时候,如果只是简…

    Linux系统 2025年9月20日
  • 讲解一下GPU的内存带宽与CPU的不同

    在先前的文章中我们谈到GPU相比CPU有更大的内存带宽,此言不虚,这也是众核GPU有源源不断数据弹药供给,能够发挥强大算力的主要原因。如下表所示(GDDR和HBM都是GPU的显存规…

    Linux系统 2025年6月8日
  • Linux下快速挂载U盘

    Linux下如何挂载U盘?在Linux系统中挂载U盘的方法非常简单,下面为大家分享一下Linux下快速挂载U盘具体方法。 1、 插入U盘 2、 #sudo fdisk –l 查看所…

    Linux系统 2025年6月19日
  • 详解Linux /etc/shadow文件

    linux的root密码存在于“/etc/shadow”这个文件中,不过要有root权限才能在linux下看到“/etc/shadow”这个文件,本篇文章重点为大家讲解一下Linu…

    Linux系统 2025年6月4日
  • Linux中安装并使用Sigil具体方法

    Sigil 是一个免费的、开源的、多平台的电子书编辑器,使用Qt(和QtWebEngine)。它被设计用来编辑ePub格式的书籍(包括ePub 2和ePub 3),本篇文章重点为大…

    Linux系统 2025年9月23日
  • 如何备份一个磁盘分区

    通常你可能会把数据放在一个分区上,有时候可能需要对该设备或者上面的一个分区进行备份。树莓派用户为了可引导 SD 卡当然有这个需求。其它小体积计算机的用户也会发现这非常有用。有时候设…

    Linux系统 2025年6月8日
  • 详解cat、more、less命令区别

    cat、more、less命令都是用来查看文本内容的命令,但是他们的使用方法和特点各有不同,本篇文章就为大家讲解一下cat more less的区别。 cat cat命令功能用于显…

    Linux系统 2025年10月6日
  • CentOS 8上安装GCC具体方法

    Linux系统下的gcc(GUN C Complier)是GUN的缩写。 在Linux和Unix下,一般我们使用gcc进行编译 c和c++代码,本篇文章重点为大家讲解一下CentO…

    Linux系统 2025年6月4日
  • 详解Git-安装

    Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本…

    Linux系统 2025年6月9日
  • Linux more和less命令

    more和less命令是Linux中查看文本时使用最多的命令,其效率非常的高效而且简便,本篇文章为大家详细讲解一下Linuxmore和less命令。 一、more命令 more功能…

    Linux系统 2025年7月7日

发表回复

登录后才能评论