HAproxy实现负载均衡及常见配置(访问控制、日志查看自动刷新时间、动静分离和读写分离)

本文详细介绍了HAproxy的负载均衡配置,包括反向代理、读写分离、动静分离等特性,并通过实例演示了访问控制、日志查看自动刷新时间和动静态内容的分离。同时,对比了HAproxy与其他负载均衡器如nginx、varnish和lvs的区别。此外,还展示了如何通过配置实现用户密码访问、错误页面重定向以及读写操作的分离。
摘要由CSDN通过智能技术生成
  • 什么是HAproxy
    HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。 HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。


  • HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

  • HAproxy的特性
    (1)反向代理
    (2)读写分离
    (3)动静分离

  • HAproxy与各负载均衡器的区别
    (1)与nginx:同样工作在用户空间,nginx是一款轻量级,能实现缓存、webserver、邮件、负载均衡等功能,但nginx的许多功能都需要第三方的模块,而haproxy的转发能力比nginx有更强更灵活的定制性,可以运用splice实现0复制的转发,并且有更直观的图形化管理界面,不过通用性不如nginx,并无缓存功能
    (2)与varnish:varnish是一款web缓存系统,
    (3)与lvs:lvs是工作在内核空间上直接转发的,无缓存功能

  • 正向代理和反向代理的区别
    正向代理是指客户端直接访问服务端
    反向代理是指客户端访问调度器,调度器再访问后端服务器将访问到的数据返回给客户端

实验环境:

主机名 IP 服务
server1 172.25.22.1 haproxy,httpd
server2 172.25.22.2 httpd,php
server3 172.25.22.3 httpd,php
foundation22 172.25.22.250 测试端

一、HApronxy实现负载均衡的配置过程

1.从官网获得一个HAproxy的安装包,解压安装包
(makefile写各个模块之间是怎么调用的
config make install后生成的文件)

[root@server1 ~]# ls
haproxy-1.7.3.tar.gz
[root@server1 ~]# tar zxf haproxy-1.7.3.tar.gz 
[root@server1 ~]# ls
haproxy-1.7.3  haproxy-1.7.3.tar.gz
[root@server1 ~]# cd haproxy-1.7.3
[root@server1 haproxy-1.7.3]# ls
CHANGELOG     doc       include      Makefile  scripts  tests
contrib       ebtree    LICENSE      README    src      VERDATE
CONTRIBUTING  examples  MAINTAINERS  ROADMAP   SUBVERS  VERSION

在这里插入图片描述
2.将源码包打包成一个rpm包
(1)查找.spec文件 (能否把一个源码包打成rpm包要看.sepc文件)

[root@server1 haproxy-1.7.3]# find . -name *.spec
./examples/haproxy.spec
[root@server1 haproxy-1.7.3]# cd

在这里插入图片描述
(2)安装编译工具rpm-build gcc pcre-devel

[root@server1 ~]# yum install -y rpm-build gcc pcre-devel 

在这里插入图片描述
(3)编译安装包

[root@server1 ~]# rpmbuild -tb haproxy-1.7.3.tar.gz 

在这里插入图片描述
编译完成之后会出现一个rpmbuild目录,rpm安装包在这个目录中 (rpm 红帽的包的管理器)

[root@server1 ~]# ls
haproxy-1.7.3  haproxy-1.7.3.tar.gz  rpmbuild
[root@server1 ~]# cd rpmbuild/
[root@server1 rpmbuild]# ls
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
[root@server1 rpmbuild]# cd RPMS/
[root@server1 RPMS]# ls
x86_64
[root@server1 RPMS]# cd x86_64/
[root@server1 x86_64]# ls
haproxy-1.7.3-1.x86_64.rpm

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值