博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HAProxy
阅读量:5993 次
发布时间:2019-06-20

本文共 3247 字,大约阅读时间需要 10 分钟。

haproxy是一款专业的7层的反向代理负载均衡器,可以实现4层和7层的负载均衡,四层:lvs(DR),nginx(stream),haproxy(mode tcp)    七层:nginx(http-upstream),httpd,haproxy(mode http),Pound,...

HAProxy 官方网站:

www.haproxy.com/www.haproxy.org

HAProxy 与nginx作为反代服务器的区别:同样工作在用户空间,nginx是一款轻量级,能实现缓存、webserver、邮件、负载均衡等功能,但nginx的许多功能都需要第三方的模块,而haproxy的转发能力比nginx有更强更灵活的定制性,可以运用splice实现0复制的转发,并且有更直观的图形化管理界面,不过通用性不如nginx,并无缓存功能。     安装和配置:     .可直接通过base  yum源安装,也可编译安装。     yum -y install haproxy    程序环境:主程序:/usr/sbin/haproxy配置文件:/etc/haproxy/haproxy.cfgUnit File:/usr/lib/systemd/system/haproxy.service    主配置文件的结构:两个配置段:    global:全局配置段;        进程及安全配置相关的参数;        性能调整相关的参数;        Debug参数;    注意:全局配置段中,除了maxconn之外,其他的配置一般无需修改;    proxies:代理配置段;        defaults:为下面的frontend、backend、listen配置段提供默认配置;        frontend:前端,面向客户端提供请求信息的接收和处理;相当于nginx的server{};        backend:后端,面向后端服务器发送请求和接收响应结果;相当于nginx的upstream{};        listen:用于四层反代和LB,相当于nginx的stream{};            调度算法                    roundrobin  动态,加权轮询,所谓动态就是可以实时生效,不用重启服务,但是连接数受限,最多支持4128                    static-rr   静态轮询,需重启服务                    leastconn   动态,根据后端主机的负载数量进行调度                    source   类似源地址hash,可以指定hash-type ,有map-based(取膜法,静态),    consistent(一致性哈希,动态)                uri  类似于DH算法,目标地址哈希,可以指定hash-type ,有map-based(取膜法,静态), consistent(一致性哈希,动态)                hdr(  ):根据请求报文中指定的header(User-agent,referer,hostname,cookie)进行调度,把指定的header的值做hash计算;可根据header首部来进行调度,非常强大,比如根据User-Agent浏览器类型来进行调度,可以指定hash-type ,有map-based(取膜法,静态), consistent(一致性哈希,动态)                基于会话绑定的cookie                cookie 
[ rewrite | insert | prefix ] [ indirect ] [ nocache ] [ postonly ] [ preserve ] [ httponly ] [ secure ] [ domain
]* [ maxidle
] [ maxlife
]应用配置段: defaults, listen, backend rewrite:将指定名称的cookie的值重写,即修改cookie值; insert:在原cookie值后面插入新的内容; prefix:在原cookie值前面添加新的内容; indirect:间接插入,只在insert模式中使用; nocache:不做缓存,只在insert模式中使用;注意:cookie参数的作用为:基于cookie的session sticky的实现方案;小实验准备三台host:

host1:172.16.66.71

host2: 172.16.66.72
host3:172.16.66.73
host1: yum install haproxy ,已经被收录进centos的base源了
分别现在host2和host3上面准备两台httpd服务,并存放数个html页面
yum install -y httpd mariadb-server php
host2: for i in {1..10};do echo "<h1>Page $i on node3</h1>" > /var/www/html/test$i.html; done
host3: for i in {1..10};do echo "<h1>Page $i on node4</h1>" > /var/www/html/test$i.html; done

eg1:利roundrobin实现最简单的调度,host1,可以同时绑定多个端口

frontend webs
bind :80,:8080
default_backend webserver
backend webserver
balance roundrobin
server web1 172.16.66.72:80 check
server web2 172.16.66.73:80 check

eg2:基于uri的一致性hash

frontend webs

bind :80
default_backend webserver
backend webserver
balance uri
hash-type consistent
server web1 172.16.66.72:80 check
server web2 172.16.66.73:80 check

测试:

测试:

eg3:基于hdr进行一致性hash调度,User-Agent

frontend webs
bind :80
default_backend webserver
backend webserver
balance hdr(User-Agent)
hash-type consistent
server web1 172.16.66.72:80 check
server web2 172.16.66.73:80 check

eg4: 设置cookie,基于会话绑定

frontend webs
bind :80
default_backend webserver
backend webserver
balance roundrobin
server web1 172.16.66.72:80 check weight 1 cookie web1
server web2 172.16.66.73:80 check weight 3 cookie web2

转载于:https://blog.51cto.com/shenmengdong/2050376

你可能感兴趣的文章
shell 的语法
查看>>
RIA and volta
查看>>
Linux下安装redis
查看>>
安装ndoutils 提示“MySQL library could not be located”错误!
查看>>
时光易逝,我懂你心
查看>>
2019年别离职、别创业、别投资,收藏好这些热点好好干!
查看>>
VSAN故障-数据传输速度极慢
查看>>
tar命令语法(-[cxt],-[zj],-v,-f)
查看>>
连接12cR2 PDB报错ORA-28040/ORA-01017
查看>>
报告称三季度Android、iOS垄断智能机市场96%份额
查看>>
java启动dos命令收集笔记一
查看>>
图片无法显示,载入制定url失败
查看>>
如何在MAP/REDUCE中不检查输出路径?
查看>>
mysql replication(主从复制)(二)MSS模式
查看>>
APP-V序列化服务器部署,应用程序虚拟化部署笔记四
查看>>
一段查看终端端口的asp代码
查看>>
关闭默认共享-注册表-批处理
查看>>
apache_1.3.41+mysql-4.0.26+php-4.4.8+Redhat5 linux
查看>>
Hive查询失败:no LazyObject for VOID
查看>>
[积累]FitWidth ImageView和TopCrop ImageView
查看>>