本文将简单介绍使用HAProxy实现web负载均衡,主要内容包括基于权重的轮询、为HAProxy配置https、配置http重定向为https、配置HAProxy使用独立日志。
一、测试环境
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://www.linuxprobe.com/redhat7-haproxy-weblb.html

RHEL 7配置HAProxy实现Web负载均衡的更多相关文章

  1. 广州项目实施步骤II_练习配置HaProxy的重定向负载均衡

    CentOS6.4 配置Haproxy   Haproxy下载地址:http://pan.baidu.com/share/link?shareid=1787182295&uk=18290183 ...

  2. Web负载均衡的几种实现方式

    Web负载均衡的几种实现方式摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是 ...

  3. IIS Web负载均衡的几种方式

    Web负载均衡的几种实现方式 摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用 ...

  4. Web负载均衡的几种方式

    Web负载均衡的几种实现方式 摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用 ...

  5. web负载均衡整理

    参考:http://www.cnblogs.com/lovingprince/archive/2008/11/13/2166350.html http://www.cnblogs.com/loving ...

  6. 项目实战4—HAProxy实现高级负载均衡实战和ACL控制

     haproxy实现高级负载均衡实战 环境:随着公司业务的发展,公司负载均衡服务已经实现四层负载均衡,但业务的复杂程度提升,公司要求把mobile手机站点作为单独的服务提供,不在和pc站点一起提供服务 ...

  7. Web负载均衡学习笔记之实现负载均衡的几种实现方式

    0x00 概要 负载均衡(Load Balance)是集群技术(Cluster)的一种应用.负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力.目前最常见的负载均衡应用是Web负载均衡.根 ...

  8. octavia的实现与分析(一)·openstack负载均衡的现状与发展以及lvs,Nginx,Haproxy三种负载均衡机制的基本架构和对比

    [负载均衡] 大量用户发起请求的情况下,服务器负载过高,导致部分请求无法被响应或者及时响应. 负载均衡根据一定的算法将请求分发到不同的后端,保证所有的请求都可以被正常的下发并返回. [主流实现-LVS ...

  9. 亿级Web系统搭建 Web负载均衡的几种实现方式(阿里)

    我还写了两篇详细的 参考:六大Web负载均衡原理与实现 参考:LVS(Linus Virtual Server):三种IP负载均衡方式比较+另三种Web负载均衡方式 其中LVS.HAProxy可以工作 ...

  10. [转帖]HAProxy 7层 负载均衡

    HAProxy 7层 负载均衡 https://www.cnblogs.com/jicki/p/5546902.html HAProxy 系统 CentOS 5.8 x64 wget http://h ...

随机推荐

  1. MSSQL T-SQL 基础 (创建、增、删、改)

    1.创建数据库 create database StudentAchievementMS ----创建数据库,可以只执行此行来创建数据库,但以下属性都是默认 on primary --主数据文件 ( ...

  2. 转:MyBatis 日志打印

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012666996/article/details/79106599Mybatis SQL语句控制台 ...

  3. Kibana+X-pack安装使用

    安装Kibana 下载解压安装包,一定要装与ES相同的版本 下载地址: https://www.elastic.co/downloads/kibana wget https://artifacts.e ...

  4. 数据库结构差异比较-SqlServer

    /****** Object: StoredProcedure [dbo].[p_comparestructure_2005] Script Date: 2022/10/8 10:00:20 **** ...

  5. JDMasking v0.1.0-beta 发布

    JDMasking 全称是jdbc data masking,是一款零代码修改.无重启.基于JDBC的动态数据脱敏软件. JDMasking 主要对实现jdbc的驱动进行字节码的增强,支持对运行中的程 ...

  6. nginx Redis 不能访问问题

    开始以为     proxy_cookie_path    /report/     /; 没有配置 配置后还是访问了,老的session 就过期 本地代理主程序,访问本地的 /report/ 可以 ...

  7. 关于office 16

    word是office的组件之一,Excel也是其中之一. 一用有八大组件.  

  8. SpringBoot之独立quartz数据源

    背景: 之前项目里面把quartz相关的表跟业务数据库(涉及系统业务的库)融合在一起,后面需要把quartz单独拎出来放在一个数据库里面, 旧的数据源配置(application.properties ...

  9. 基于element-ui进行二次封装的表格组件

    <!-- * @description 表格组件 * @fileName TableList.vue * @authorQ * @date 2021/05/15 15:13:45 --> ...

  10. 关于EasyExcel的数据导入和单sheet和多sheet导出

    读写Excel基本代码 直接复制不一定能用 实体类 @ExcelIgnore 在导出操作中不会被导出 @ExcelProperty 在导入过程中 可以根据导入模板自动匹配字段, 在导出过程中可用于设置 ...