业界动态
反向代理haproxy用法详解
2024-11-01 00:03

一。haproxy简介

反向代理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借助于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安装

  演示环境

可以使用 下载源码包 make安装
	

haproxy文档 位于 :http://cbonte.github.io/haproxy-dconv/

官网 haproxy.1wt.eu无法进入  yum上有该包的rpm 直接安装

安装
	
查看安装的所有文件
	
配置文件位于/etc/haproxy/haproxy.cfg
	
所有文档位于/usr/share/doc/haproxy-1.5.18
服务文件 /usr/lib/systemd/system/haproxy.service 可以使用 systemctl start haproxy
使用了日志轮替 /etc/logrotate.d/haproxy 说明日志使用的rsyslog 查看该文件
日志文件 位于 /var/log/haproxy.log 每天自动轮替一次 10个周期后历史记录日志删除 rsyslog参考(http://blog.csdn.net/liaomin416100569/article/details/78599529
源码安装可以参考 /usr/share/doc/haproxy-1.5.18/README 该文件的描述
配置文件语法参考 /usr/share/doc/haproxy-1.5.18/configuration.txt
配置文件简单样例参考 /usr/share/doc/haproxy-1.5.18/examples/haproxy.cfg
出现代理后台服务出错的默认页定义
haproxy启动主文件
	
常用的操作子命令
	
尝试启动haproxy 我还没有做任何配置
	
看到 进程中 命令 实际就是调用haproxy进行调用 -f指定配置文件 -p指定进程pid -D表示后台运行 -s 保持一个进程在前台 可以看到输出消息
	

三。haproxy常用配置

查看haproxy的配置文件(未做修改 默认配置

其中还有一块listen用于设置tcp 比如代理mysql
	常用的后端服务器检查参数有
	

acl规则简介常用检测条件

    haproxy的ACL用于实现基于请求报文的首部、响应报文的内容或其它的环境状态信息来做出转发决策,这大大增强了其配置弹性。 其配置法则通常分为两步,首先去定义ACL,即定义一个测试条件,而后在条件得到满足时执行某特定的动作,如阻止请求或转发至某特定的后端。
定义ACL的语法格式如下
<aclname>:ACL名称,区分字符大小写,且其只能包含大小写字母、数字、-(连接线)、_(下划线)、.(点号)和:(冒号);haproxy中,acl可以重名,这可以把多个测试条件定义为一个共同的acl
<criterion>:测试标准,即对什么信息发起测试;测试方式可以由[flags]指定的标志进行调整;而有些测试标准也可以需要为其在之前指定一个操作符[operator]
[flags]:目前haproxy的acl支持的标志位有3个
-i:不区分中模式字符的大小写
-f:从指定的文件中加载模式
--:标志符的强制结束标记,在模式中的字符串像标记符时使用
<value>:acl测试条件支持的值有以下四类
整数或整数范围:如1024:65535表示从1024至65535;仅支持使用正整数(如果出现类似小数的标识,其为通常为版本测试),且支持使用的操作符有5个,分别为eq、ge、gt、le和lt
字符串:支持使用“-i”以忽略字符大小写,支持使用“”进行转义;如果在模式首部出现了-i,可以在其之前使用“–”标志位
正则表达式:其机制类同字符串匹配
IP地址及网络地址
同一个acl中可以指定多个测试条件,这些测试条件需要由逻辑操作符指定其关系。条件间的组合测试关系有三种:“与”(默认即为与操作)、“或”(使用“||”操作符)以及“非”(使用“!”操作符)。
 常用的测试标准(criteria)

负载均衡算法

四。haproxy配置案例

 192.168.58.149 httpd服务 (yum -y install httpd )
 192.168.58.150 httpd服务  

分别进入 /var/www/html 下 分别新建一个普通的html文件内容不一样 
149(node2

150(node3
启动两台机器httpd
	
分别访问两个httpd服务的网页 看是否正常显示
	
http://192.168.58.150/1.html
http://192.168.58.149/1.html
在node1上安装haproxy

修改配置文件

检查配置文件是否正确
	
启动haproxy
	
查看进程和端口是否启动
	
访问 http://192.168.58.147:8080/1.html 发现轮换输出node2和node3
	
日志参考之前配置文件开头部分讲解配置  查看日志(明显的node2和node3轮询)    以上就是本篇文章【反向代理haproxy用法详解】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/6594.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多   
最新新闻
“撒旦”人血鞋?碰瓷新疆棉花的耐克,又开始喊冤了?
继主动碰瓷新疆棉花把自己搞得股价大跌之后耐克秉承着“no zuo no die”的精神又开始暗搓搓搞“阴间操作”限量发售含人血的“撒
tiktok怎么搭建外网 详细教程及步骤
TikTok怎么搭建外网(详细教程及步骤)TikTok是一款非常流行的短视频社交应用程序,它在全球范围内拥有数亿用户。在使用TikTok的
《以案释法》步数越多,收益越高?别被“走路也能赚钱”的理财广告忽悠了
  走路也能赚到钱的理财  “丑的人还在睡觉,美的人已经跑出一杯星巴克了。”2016年的一天,一个女孩晒出的朋友圈截图引起了
如何用生意参谋算出同行店铺真实销售额
怎么经过生意顾问算出同行店肆实在销售额?大多数在淘宝天猫工作过的人都知道,他们的背景显现了同行商铺的买卖数据,这被称为买
一款最近比较火的网站统计分析系统,易分析具有什么样的功能呢?
一、产品简介北京普艾斯科技有限公司成立于2009年,服务客户1000+,包括电商、金融、保险、政务服务等行业。私有化部署,全渠道
向佐快乐大本营2024年精彩回顾:四年时光共欢笑
张大大谢娜力捧下的综艺新星张大大一位在娱乐圈中颇具人气的主持人他的成名之路离不开谢娜的提携回顾张大大的成名之路可以说谢娜
PingTools app
《PingTools app》是一款非常好用的实用工具软件,软件内拥有丰富的功能,包含了包括浏览器扫描等。使用非常简单,直接下载安装
抖音能看到谁搜索过自己吗?
尊敬的用户,您好。针对抖音平台是否能够查看谁搜索过自己的问题,我们需要做一些详细说明。首先,根据我们了解到的情况,在抖音
什么是人工智能“语料库”?为什么每个人都在谈论它?
编者按:比尔盖茨(Bill Gates)、Reddit 首席执行官和其他科技领袖越来越多地谈论“语料库”,现在是时候了解它是“何方神圣”
LED行业词语中英对应
1、led 灯具构成英文led 球泡灯:led bulbLed 贴片灯珠:SMD LEDLed驱动电源:led driver隔离电源:isolated driver非隔离电源:
本企业新闻

点击拨打: