Haproxy简介:

1、HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

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

3、HAProxy 支持连接拒绝 : 因为维护一个连接的打开的开销是很低的,有时我们很需要限制***蠕虫(attack bots),也就是说限制它们的连接打开从而限制它们的危害。 这个已经为一个陷于小型DDoS***的网站开发了而且已经拯救

了很多站点,这个优点也是其它负载均衡器没有的。

4、HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器. 这个特性仅在Linux 2.4/2.6内核打了cttproxy补丁后才可以使用. 这个特性也使得为某特殊服务器处理部分流量同时又不修改服务器的地址成为可能。

Haproxy性能

HAProxy借助于OS上几种常见的技术来实现性能的最大化。

1,单进程、事件驱动模型显著降低了上下文切换的开销及内存占用。

2,O(1)事件检查器(event checker)允许其在高并发连接中对任何连接的任何事件实现即时探测。

3,在任何可用的情况下,单缓冲(single buffering)机制能以不复制任何数据的方式完成读写操作,这会节约大量的CPU时钟周期及内存带宽;

4,借助于Linux 2.6 (>= 2.6.27.19)上的splice()系统调用,HAProxy可以实现零复制转发(Zero-copy forwarding),在Linux 3.5及以上的OS中还可以实现零复制启动(zero-starting);

5,内存分配器在固定大小的内存池中可实现即时内存分配,这能够显著减少创建一个会话的时长;

6,树型存储:侧重于使用作者多年前开发的弹性二叉树,实现了以O(log(N))的低开销来保持计时器命令、保持运行队列命令及管理轮询及最少连接队列;

7,优化的HTTP首部分析:优化的首部分析功能避免了在HTTP首部分析过程中重读任何内存区域;

8,精心地降低了昂贵的系统调用,大部分工作都在用户空间完成,如时间读取、缓冲聚合及文件描述符的启用和禁用等;

所有的这些细微之处的优化实现了在中等规模负载之上依然有着相当低的CPU负载,甚至于在非常高的负载场景中,5%的用户空间占用率和95%的系统空间占用率也是非常普遍的现象,这意味着HAProxy进程消耗比系统空间消耗低20倍以上。因此,对OS进行性能调优是非常重要的。即使用户空间的占用率提高一倍,其CPU占用率也仅为10%,这也解释了为何7层处理对性能影响有限这一现象。由此,在高端系统上HAProxy的7层性能可轻易超过硬件负载均衡设备。

在生产环境中,在7层处理上使用HAProxy作为昂贵的高端硬件负载均衡设备故障故障时的紧急解决方案也时长可见。硬件负载均衡设备在“报文”级别处理请求,这在支持跨报文请求(request across multiple packets)有着较高的难度,并且它们不缓冲任何数据,因此有着较长的响应时间。对应地,软件负载均衡设备使用TCP缓冲,可建立极长的请求,且有着较大的响应时间。

HAProxy特点:
1、支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;
2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作
3、支持url检测后端的服务器出问题的检测会有很好的帮助。
4、更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现
5、单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度。
6、HAProxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡。
9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)
10、不能做Web服务器即Cache。

本文主要讲的是haproxy的四层协议-传输层,博主之前所在公司的网络拓扑图大概是下面这个样子:

1、办公区不可以访问生产,但是可以访问测试机;

2、生产68段可以出外网,38段不可以。

3、办公区的测试服务器可以访问生产。

下面博主大概模拟了下haproxy的四层传输层的原理(忽略7层应用层)

三台centos的机器,系统版本centos7——x64,三台机器的特点如下:

1、192.168.88.3 (办公区的测试机)

2、二个ip:192.168.38.4和192.168.88.121(haproxy代理)

3、192.168.38.5 (生产机器)

通过测试88段和38段相互是ping不同,但是代理服务器和38/88之间相互ping的通。

首先192.168.38.4上haproxy的安装:

#yum install haproxy -y

其次,192.168.38.5 apache服务安装、启动、做一个标志性测试页:

# yum install httpd -y

[root@localhost html]# pwd

/var/www/html

[root@localhost html]# cat index.html

localhost:remote web

# systemctl start httpd

通过浏览器测试下:

接下来配置代理:

# vim /etc/haproxy/haproxy.cfg

listen test  :80                  #运行的端口及主机名

server s1 192.168.38.5:80      #被代理服务的ip+端口

# systemctl restart haproxy

88段的只需要访问代理服务器就相当于访问38段web服务器,也就是说办公区只需要访问测试段的代理就可以访问生产上不出外网的web服务,所以这样的代理只是传输层。

Haproxy代理配置---传输层相关推荐

  1. Web services 安全实践: 基于 HTTP Basic Authentication 为 Web services 配置传输层安全机制...

    转载:http://www.ibm.com/developerworks/cn/webservices/1106_webservicessecurity/ 简介 正如"HTTP Basic ...

  2. 【网站架构】Nginx 4层、7层代理配置,正向代理、反向代理详解

    大家好,欢迎来到停止重构的频道. 本期我们讨论网络代理. 在往期<大型网站 安全性>介绍过,出于网络安全的考虑,一般大型网站都需要做网络区域隔离,以防止攻击者直接操控服务器. 网站系统的应 ...

  3. nginx工作笔记005---nginx配置负载均衡_在微服务中实现网关集群_实现TCP传输层协议__http协议的负载均衡

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 我们在微服务中,由于网关的存在,后来,在nginx中都不需要在配置其他服务的地址了,只需要,配置一 ...

  4. haproxy代理https配置方法【转】

    haproxy代理https配置方法[转] 记得在之前的一篇文章中介绍了nginx反向代理https的方法,今天这里介绍下haproxy代理https的方法: haproxy代理https有两种方式: ...

  5. Elasticsearch集群传输层安全配置

    传输层安全配置以最低安全要求为基础(用户名和密码),通过安装证书来验证集群中的节点,以防止未经授权的节点加入你的 Elasticsearch 集群. 生成证书 官方提供了一个在 bin 目录下叫做 e ...

  6. Linux学习-HaProxy代理后端Nginx

    代理作用:web缓存(加速),反向代理.内容路由(根据流量及内容类型将请求转发至特定服务器),转码器 缓存作用:减少冗余内容传输,节省带宽.缓解网络瓶颈,降低对原始服务器压力,降低传输延迟 Hapro ...

  7. 【学习笔记】【计算机网络【总】】物理层;链路层;网络层;传输层;应用层;详解

    目录 框架 一.计算机网络 1. 层次结构设计 2. 现代互联网拓扑 3. 网络性能指标 二.物理层 三.数据链路层 2.最大传输单元MTU 3.以太网协议详解 四.网络层 - 链接 五.传输层 - ...

  8. HAProxy详解(二):HAProxy基础配置与应用实例

    一.HAProxy基础配置与应用实例: 1.快速安装HAProxy集群软件: HAProxy的官网: https://www.haproxy.org/#down下载HAProxy的源码包. 安装: [ ...

  9. 简述tcp协议三报文握手过程_华为原理 | 传输层协议amp;交换转发原理

    Interface GigabitEthernet0/0/0 ip address 12.1.1.2 255.255.255.0 arp-proxy enable \\华为接口下默认没有开启代理ARP ...

最新文章

  1. 面向用户计算机,一款面向普通用户的防火墙软件,让你了解计算机到底产生了哪些网络流量?...
  2. docker搭建ssr
  3. MATLAB概率密度函数估计
  4. LTP(LinuxTest Project)测试工具
  5. java.sql.SQLException: The server time zone value ‘???ú±ê×??±??‘ is unrecognized or represents more
  6. springmvc + mybatis + ehcache + redis 分布式架构
  7. 跨境电商独立站,如何找到更多联盟流量资源
  8. gb和gib的区别_高端存储手册里面的KiB,MiB,GiB是啥意思?
  9. premiere导入视频没有声音怎么办?快速解决方法,几步就搞定
  10. Linux 文件颜色代表含义
  11. PPT文件转换成PDF格式
  12. python网课教学_如何上好网课 — 老师录课和在线上课教学经验谈
  13. Google体系地图纠偏算法
  14. 使用rust和actix实现一个视频流服务器
  15. 年度盘点丨2017十大最佳科技创新产品!
  16. woff字体图元结构剖析,自定义字体的制作与匹配和识别
  17. Word2003入门动画教程131:Word拼音指南的使用
  18. 2013.4.22每日一记
  19. RK3399平台开发系列讲解(UART子系统)4.26、TTY子系统之系统框架
  20. OpenWRT上安装FreeSWITCH

热门文章

  1. 美团副总裁夏华夏:科技应该为每一个普通人服务,要做“接地气的AI” | MEET2021...
  2. 看屁股,你是一头大象吧
  3. 姚班代有才人出:清华本科生用“最简单的形式”,大幅提高少样本学习性能...
  4. 3亿美元,腾讯第三次领投行业AI独角兽明略,这次还有淡马锡领投,快手跟投...
  5. Lyft开源L5自动驾驶数据集:55000个人工标注的3D注释框架,还有高清空间语义地图...
  6. JS题目总结:原型链/new/json/MVC/Promise
  7. 监控haproxy的脚本
  8. Python 面试总结
  9. 开源 java CMS - FreeCMS2.3 会员组管理
  10. Ext4 MVC CRUD操作